clang 说“找不到 cstdlib 文件”

发布于 2024-11-26 12:18:08 字数 280 浏览 2 评论 0原文

在几乎默认安装的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

稚然 2024-12-03 12:18:08

似乎您的 clang 构建没有搜索正确的平台包含路径。尝试检查

clang -v ...

它在哪里寻找标头(并检查您的平台包含路径是否在那里)。您可能必须添加其他包含目录(例如/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

clang -v ...

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 method AddDefaultCPlusPlusIncludePaths does some distribution/gcc-version specific magic (I had to fix it for my own system once).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文