我有以下文件foo.cpp
:
#include <vector>
struct MyClass
{
std::vector<int> v;
};
可以用clang编译成功(我在Ubuntu 13.04 32bit上用的是clang 3.3):
clang++ -c foo.cpp
现在我要打印 AST:
clang++ -cc1 -ast-print foo.cpp
我遇到了以下错误
foo.cpp:1:10: fatal error: 'vector' file not found
#include <vector>
^
struct MyClass {
};
1 error generated.
看起来 clang++ -cc1
不知道系统包含文件等。
我想知道如何为 clang++ -cc1
设置包含?
最佳答案
您需要设置正确的包含路径。 在我的系统上我添加了
-I/usr/include/i386-linux-gnu/c++/4.8 -I/usr/include/c++/4.8
到编译器标志。第一个是这样它可以找到 位/c++config.h 当然 4.8 是因为我使用的是与 g++-4.8 兼容的编译器
我也加了
-std=c++11 -stdlib=libstdc++
作为编译器选项。 希望这有帮助
关于c++ - clang -cc1 和系统包括,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18506590/