私はCMake
UNIXメイクファイルを生成するために使用します。その後、make
ユーティリティを使用してプロジェクトをコンパイルします。問題は、警告が表示されないことです。たとえば、これにより、警告なしでクリーン ビルドが行われます。
#include <iostream>
class Foo
{
int first;
int second;
public:
Foo(int a, int b)
: second(a) // invalid initialization order
, first(b)
{
}
};
int main(int argc, char** argv)
{
int unused; // unused variable
int x;
double y = 3.14159;
x = y; // invalid cast
Foo foo(1,2);
std::cout << y << std::endl;
return 0;
}
未使用の変数と可逆変数のキャスト - 警告なし! 私のCMakeLists.txt
ファイルは最小限です:
cmake_minimum_required(VERSION 2.8)
add_executable(main main.cpp)
実行するcmake
とmake
、出力は次のようになります。
[100%] Building CXX object CMakeFiles/main.dir/main.cpp.o
Linking CXX executable main
[100%] Built target main
しかし、このコード行を追加すると:
#warning ("Custom warning")
結果の出力には警告が含まれます:
[100%] Building CXX object CMakeFiles/main.dir/main.cpp.o
../src/main.cpp:15:2: warning: #warning ("Custom Warning") [-Wcpp]
Linking CXX executable main
[100%] Built target main
コンパイラとして Ubuntu 12.04 LTS と GCC を使用しています。たぶん、CMake が何らかのフラグをコンパイラに渡し、その結果、警告が表示されなくなることがあります。どうすれば確認できますか?CMake によって生成された makefile を読み取ることができません。少し暗号化されています。