質問:
したがって、私の質問は次のとおりです。警告を完全にオフにせずに QT プロジェクトをビルドするにはどうすればよいでしょうか (または、何百万もの目的のないものを分類して自分のものを見つける必要があります)。QT ヘッダーだけの警告を抑制することはできますか?
詳細:
問題
数か月前、私は QT-Creator で QT プロジェクトを開始しました。当時、私は gcc 4.6 を使用していました。少し他の優先事項が自分自身を主張した後、私は今までプロジェクトに取り組む時間がないことに気づきました。その間、clang の使用に切り替えました。QT プロジェクトを clang を使用するように構成したとき (このプロジェクトは g++ で警告なしでコンパイルされました)、QT ヘッダー自体の中に 263 個の警告がすべて生成されました。主に符号変換と到達不能コード。
試み
これを回避するために、 Clang User Manual のこのエントリに基づいて -isystem /path/to/QT/include/dir を追加しましたが、何も影響しなかったようです。#include
確かではありませんが、コードがディレクトリではなく名前による QT ヘッダーであるためだと思います。その解決策は、使用されているすべての QT ヘッダーを手動でリストすることかもしれませんが (試したことはありません)、QT をアップグレードしたり、新しいヘッダーを使用したりするたびに更新する必要があります。確かに、より良い解決策があります。
ここで要求されているのは、実行されている実際のコンパイル コマンドです。
clang++ -c -pipe -Qunused-arguments -Weverything -cxx-isystem /path/to/qt/4.8.3/include/ -g -D_REENTRANT -DQT_NO_KEYWORDS -DQT_SHARED -I/path/to/qt/x86_64/4.8.3/mkspecs/unsupported/linux-clang -I. -I.moc -I.ui -I/path/to/qt/4.8.3/include/ -o .obj/main.o main.cpp
仕様
私は使っている:
- Linux 3.2.0-40-generic #64-Ubuntu SMP x86_64 GNU/Linux
- 私のチームの他のメンバーは Windows を使用していますが、
- QT クリエーター 2.6.2
- QT4.8.3
- clang バージョン 3.2 (トランク 165250) (llvm/トランク 165249)
- ターゲット: x86_64-unknown-linux-gnu