如何查询clang ++的默认包含路径?

and*_*rea 10 c++ clang

如何查询clang/clang ++的默认包含路径?我正在尝试使用自定义构建的clang编译器(支持OpenMP的编译器),但它似乎找不到STL库:

/usr/local/bin/clang++ hello.cpp 
hello.cpp:1:10: fatal error: 'iostream' file not found
#include <iostream>
     ^
1 error generated.
Run Code Online (Sandbox Code Playgroud)

通过使用IDE,反向跟踪#include iostream,最后使用-isystem选项,我在OSX 10.9中编译了简单的helloworld应用程序:

/usr/local/bin/clang++ -isystem /Library/Developer/CommandLineTools/usr/lib/c++/v1 hello.cpp
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

And*_*all 13

如果你跑

clang++ -### hello.cpp
Run Code Online (Sandbox Code Playgroud)

它将显示用于编译该特定文件的命令,包括默认包含路径、库搜索路径、目标等。


Mar*_*sse 11

你正在寻找选择-v.编译时clang++ -c file.cc -v将打印其他内容:

#include "..." search starts here:
#include <...> search starts here:
 /usr/bin/../lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9
Run Code Online (Sandbox Code Playgroud)

等等

  • 您还可以使用“-H”选项来打印用于编译特定文件的标头。 (8认同)