clang说"找不到cstdlib文件"

Tar*_*mán 4 gcc g++ clang include-path

在几乎默认安装的Ubuntu 11.04上我安装了clang.

我想编译这个:

#include <cstdlib>
int main(){
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

g ++可以很好地处理它,但clang ++错误输出:致命错误:'cstdlib'文件未找到

有人可以解释为什么会这样吗?以及需要做些什么来使这项工作?我希望clang ++成为g ++的替代品.

Mar*_*gen 5

好像你的clang构建没有搜索正确的平台包含路径.尝试检查

clang -v ...
Run Code Online (Sandbox Code Playgroud)

它正在寻找标题(并检查您的平台是否包含路径).您可能必须添加其他包含目录(例如/ usr/include/c ++/xy).

你可能想看看源文件lib/Frontend/InitHeaderSearch.cpp,该方法AddDefaultCPlusPlusIncludePaths做了一些分发/ gcc-version特定的魔法(我必须为我自己的系统修复一次).