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

您需要询问preprocessor而不是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 回答