Rom*_*098 9 c++ clang abstract-syntax-tree include-path
我有以下文件foo.cpp:
#include <vector>
struct MyClass
{
std::vector<int> v;
};
Run Code Online (Sandbox Code Playgroud)
它可以用clang成功编译(我在Ubuntu 13.04 32bit上使用clang 3.3):
clang++ -c foo.cpp
Run Code Online (Sandbox Code Playgroud)
现在我要打印AST:
clang++ -cc1 -ast-print foo.cpp
Run Code Online (Sandbox Code Playgroud)
我有以下错误
foo.cpp:1:10: fatal error: 'vector' file not found
#include <vector>
^
struct MyClass {
};
1 error generated.
Run Code Online (Sandbox Code Playgroud)
看起来好像clang++ -cc1不知道系统包含文件等.我想知道如何设置包括clang++ -cc1?
您需要设置正确的包含路径.在我的系统上我添加了
-I/usr/include/i386-linux-gnu/c++/4.8 -I/usr/include/c++/4.8
Run Code Online (Sandbox Code Playgroud)
到编译器标志.第一个是它可以找到bits/c ++ config.h当然4.8是由于我使用的编译器兼容g ++ - 4.8
我还补充道
-std=c++11 -stdlib=libstdc++
Run Code Online (Sandbox Code Playgroud)
作为编译器选项.希望这可以帮助
| 归档时间: |
|
| 查看次数: |
12264 次 |
| 最近记录: |