2012-08-14 2 views
44

私は少しビルドスクリプトを書こうとしていますが、インクルードがシステムインクルードかどうかを調べたいと思っています。だから私はg ++にインクルードパスを教えてもらいたい。g ++からのパスをダンプします

cpp -vは明白なベストショットに見えますが、C++のパスがわかりません。

は、だから私は試してみました:かなり右に動作しません

g++ -Xpreprocessor -v 

- gが++それ自身の冗長出力のために-vをキャプチャします。ジョナサンWakelyから

おかげで、 オリバー

答えて

66

良いオプション(あまりにも打ち鳴らす上で動作します):

g++ -E -x c++ - -v < /dev/null 
clang++ -E -x c++ - -v < /dev/null 

私は、言語を指定するためのcppの中のフラグがあります気づきました。これは魅力のように機能します。 「あなたは確認することができますを意味し、-v <は/ dev/null`なので -

cpp -xc++ -v < /dev/null 


#include "..." search starts here: 
#include <...> search starts here: 
/usr/local/Cellar/gcc/4.7.0/gcc/lib/gcc/x86_64-apple-darwin11.4.0/4.7.0/../../../../include/c++/4.7.0 
/usr/local/Cellar/gcc/4.7.0/gcc/lib/gcc/x86_64-apple-darwin11.4.0/4.7.0/../../../../include/c++/4.7.0/x86_64-apple-darwin11.4.0 
/usr/local/Cellar/gcc/4.7.0/gcc/lib/gcc/x86_64-apple-darwin11.4.0/4.7.0/../../../../include/c++/4.7.0/backward 
/usr/local/Cellar/gcc/4.7.0/gcc/lib/gcc/x86_64-apple-darwin11.4.0/4.7.0/include 
/usr/local/include 
/usr/local/Cellar/gcc/4.7.0/gcc/include 
/usr/local/Cellar/gcc/4.7.0/gcc/lib/gcc/x86_64-apple-darwin11.4.0/4.7.0/include-fixed 
/usr/include 
/System/Library/Frameworks 
/Library/Frameworks 
End of search list. 

ちょうど `G ++ -E -x C++、それはGCC 4.2

+7

又は同等に-x c++ to be -xc++のために重要であることに気づきました同じ 'g ++'実行ファイルを使用してコンパイルに使用します –

+0

乾杯 - これは良い選択です。あまりにもclangで動作します。 – Oliver

+0

'g ++ -E -x C++ -v/dev/null'に単純化することができます。 – Rufflewind

関連する問題