問題タブ [iwyu]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
215 参照

c++ - デフォルト以外の g++ バージョンで使用するものを含める

初めて自分のコードベースでinclude-what-you-use を動作させようとしています。

私の CentOS6 システムには、デフォルトで g++ 4.4.7 がインストールされています。C++11 プロジェクトに g++ 4.9.3 を使用しています。これらの 4 つの選択肢には柔軟性がありません。

次のように、プロジェクトの cmake データベースを効果的に構築します。

プロジェクトをコンパイルすると、次のような出力が得られます。

すごい!そのファイルには必要ないdeque.hので、ツールはある程度機能しています!

ただし、警告は落胆しています...もちろんstddef.h、実際にはgcc-4.9.3の下で定義されているため、実際のコンパイルによって検出されます。

Q: ツールがデフォルトのではなく${CMAKE_CXX_INCLUDE_WHAT_YOU_USE}下に見えるように変数を変更するにはどうすればよいですか?gcc-4.9.3gcc-4.4.7

JSON コンパイル コマンドをエクスポートするように要求cmakeすると、このエントリは次のようになります。

ありがとう!


編集:

以下の @KamilCuk の提案によるsysrootと、iwyu コマンドに a を追加すると、4.4.7 警告が消えるようです。

<map>またはnow のような基本は見つかりません<vector>が、4.4.7 の警告はなくなりました。これは、正しい方向に進んでいることを示しています。

を使用--sysroot /path/to/gcc-4.9.3/include/c++/4.9.3してもその問題は解決しません。多くの一般的なファイルに対して、次のような多くのエラーが発生します。