17

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

$ 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であると言っているようですが、残念ながらそれは本当のパスではありません。標準 C ライブラリを含めるための真のパスは、後のパスにある/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/includeためだと思います。<sys/syscall.h>/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/sys/syscall.h

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

4

1 に答える 1

49

デフォルトのインクルード パスを伝えるには、gccではなく、プリプロセッサに問い合わせる必要があります。

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

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

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

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

(上記のパスは、ビルド中に GCCを構成するために使用されたものです。)


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

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

gcc -x c++ -v -E /dev/null     # (for C/C++)
于 2013-11-08T05:34:49.047 に答える