プロジェクト内の特定のファイルのコンパイラ フラグを削除したいと考えています。を使用してこれを行う方法は#pragma?
3 に答える
を使用してオーバーライドできるのは、警告を制御するフラグのみです。診断プラグマのドキュメント ページ#pragmaを参照してください。
たとえば、次のことができます。
#pragma GCC diagnostic ignored "-Wformat"
フォーマット文字列の不一致によって生成される警告を GCC が無視するようにします。
遅くなって申し訳ありませんが、プロジェクトで同じ問題に遭遇しました。
コンパイラ フラグのリストを変更する #pragma は見つかりませんでしたが、GNU Make の機能を使用してターゲットごとに make 変数を変更することはできました。
私のファイルの 1 つは、コンパイルに永遠にかかっていました-fvar-tracking-assignments(これは、数リリース前に -O2 に追加されました)。1 つのファイルでそれをオフにする方法を探していました。適切なプラグマを(無駄に)探した後、次の行をメイクファイルに追加して、CXXFLAGSこれらの特定のファイルをコンパイルおよびリンクするときに変更しました。
ObtuseObj.o ObtuseObjTest.o ObtuseObjTest : CXXFLAGS += -fno-var-tracking-assignments
うまくいけば、これは他の人に役立つでしょう!
gcc にそのようなプラグマがあるかどうかはわかりません。pragmasの gcc ページに何も見つかりません。
次回gccに関する質問をする場合は、gccの下にもタグを付けてください。タグ付けしたいけどできません。gcc でタグ付けすると、さらに多くの応答が得られます。