Arch Linuxのソースからパッケージを構築する

Arch Linuxのソースからパッケージを構築する

私は最近、夏のプロジェクトとしてデスクトップPCにArch Linuxをインストールし、ソースからプログラムをインストールする方法を学びたいと思います。私が収集したものからtarballファイルをインポートして解凍し、./configureを実行してからmakeとmake-installを実行する必要があります。 ./configureを介して進めることができますが、コードブロックをインストールするためにmakeコマンドを実行しようとすると、コンパイラエラーのように見えるものがたくさん表示されます。

codeblocks wikiのガイドによると、codeblocks自体をインストールする前にwxGTK2-2.8.12をインストールする必要があります。

../configure --prefix=/opt/wx/2.8 --enable-xrc --enable-monolithic --enable-unicode

これは私には大丈夫だと思いますが、ここ端子出力です。

その後、同じフォルダでmakeを実行してみましたが、出力は非常に広範囲でした。読みにくかったけど申し訳ありません。エラーは最後にあります。以前の出力を確認する必要があるかどうかはわかりません。ここ完全なmake出力です。

ベストアンサー1

ビルドログのすべてのコンパイルエラーは、次の形式に従います。

error: narrowing conversion of ‘ddd’ from ‘int’ to ‘char’ inside { } [-Wnarrowing]

他の多くのコンパイラ診断がありますが、これはエラーではなく警告なので、そのまま使用できます。

このエラーは、2011年3月にリリースされましたが、現在2017-7ヶ月wxGTK2-2.8.12のコンパイラのデフォルト標準ではなく、以前のC ++標準(C ++ 98、つまりC ++ 1998)でコンパイルされるように書かれているために発生します。g++コンパイラはg++バージョン 6 以降であり、デフォルトは C++14 (C++ 2014) であると仮定します。 C++11 標準以降ビルドを中断する縮小変換は、誤った形式で判断されたが、以前はそうではなかった。

g++options を渡すことで、選択した C++ 標準に対して直接コンパイルすることができ、-std={c++98|c++03|c++11|c++14|c++17}for パラメータの値に選択肢を含め、選択wxGTK2-2.8.12 configure内容をスクリプトに渡すことができます。または、縮小変換エラーを排除します。CXXFLAGS./configure-std=c++98-std=c++03

../configure CXXFLAGS=-std=c++03 --prefix=/opt/wx/2.8 --enable-xrc --enable-monolithic --enable-unicode

または、次のようg++な診断を直接抑制することもできます-Wnarrowing

../configure CXXFLAGS=-Wno-narrowing --prefix=/opt/wx/2.8 --enable-xrc --enable-monolithic --enable-unicode

GNU autotoolsパッケージのすべてのスクリプト./configure(ビルドしたいパッケージなど)には、以下を含むパラメータがあります。

CC          C compiler command
CFLAGS      C compiler flags
LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
          nonstandard directory <lib dir>
CPPFLAGS    C/C++ preprocessor flags, e.g. -I<include dir> if you have
          headers in a nonstandard directory <include dir>
CPP         C preprocessor
CXX         C++ compiler command
CXXFLAGS    C++ compiler flags

これは、ツールチェーンとパッケージをリリースするときにパッケージマネージャが期待するデフォルト値との偏差を修正するのに役立ちます。望むより./configure --help

おすすめ記事