私は最近、夏のプロジェクトとしてデスクトップ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
。