clang 说“找不到 cstdlib 文件”
在几乎默认安装的 Ubuntu 11.04 上,我安装了 clang。
我正在尝试编译这个:
#include <cstdlib>
int main(){
return 0;
}
g++ 可以很好地处理它,但是 clang++ 出错了:致命错误:找不到'cstdlib'文件
有人可以解释为什么会发生这种情况吗?以及需要做什么才能使这项工作成功? 我希望 clang++ 能够直接替代 g++。
On an almost default install of Ubuntu 11.04 I installed clang.
I am trying to compile this:
#include <cstdlib>
int main(){
return 0;
}
g++ can deal with it just fine, but clang++ errors out: fatal error: 'cstdlib' file not found
Can someone explain why this happens? and what needs to be done to make this work?
I expected clang++ to be a drop-on replacement for g++.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
似乎您的 clang 构建没有搜索正确的平台包含路径。尝试检查
它在哪里寻找标头(并检查您的平台包含路径是否在那里)。您可能必须添加其他包含目录(例如/usr/include/c++/xy)。
您可能想查看源文件
lib/Frontend/InitHeaderSearch.cpp
,方法AddDefaultCPlusPlusIncludePaths
执行了一些发行版/gcc 版本特定的魔法(我必须为我自己的系统修复一次)。Seems like your clang build is not searching the correct platform include paths. Try checking with
where it is looking for headers (and check that your platform include paths are there). You might have to add additional include directories (e.g. /usr/include/c++/x.y).
You might want to take a look at the source file
lib/Frontend/InitHeaderSearch.cpp
, The methodAddDefaultCPlusPlusIncludePaths
does some distribution/gcc-version specific magic (I had to fix it for my own system once).