web-dev-qa-db-ja.com

`gcc -v`でMac OS XのCヘッダーのデフォルトインクルードパスを表示しますか?

_gcc -v_を使用して、Mac OS X(Mavericks)でCコンパイラのデフォルトのインクルードパスを見つけようとしました。

_$ gcc -v
Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1
Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
Target: x86_64-Apple-darwin13.0.0
Thread model: posix
_

パスは_/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1_であると教えてくれているようですが、本当のパスではないようです。 _/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include_が後のパス、つまり_<sys/syscall.h>_にあるため、標準Cライブラリをインクルードするための実際のパスは_/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/sys/syscall.h_であると思います

Mac OS XでCライブラリのすべてのデフォルトインクルードパスを表示する方法についてのアイデアはありますか?

17
Hanfei Sun

デフォルトのインクルードパスを指定するには、gccではなくプリプロセッサを使用する必要があります。

あなたは言うことができます:

`gcc -print-prog-name=cc1` -v

CとC++の両方のデフォルトのインクルードパスをリストするには:

`gcc -print-prog-name=cc1plus` -v

(上記のpathは、ビルド中にconfigure GCCに使用されたものです。)


デフォルトのインクルードパスをリストする別の方法は次のとおりです。

gcc -x c -v -E /dev/null

gcc -x c++ -v -E /dev/null     # (for C/C++)
45
devnull