编译llvm/clang时出现致命错误 - 找不到'cstddef'文件。

16

当尝试编译llvm/clang时

../llvm/configure --enable-cxx11=yes --enable-libcpp=yes 
  --enable-optimized=yes --prefix=/usr/local --enable-targets=all 
  --with-gcc-toolchain=/usr/local/bin --enable-bindings=auto 

出现以下错误:

[...]llvm/include/llvm/Support/AlignOf.h:19:10: fatal error: 'cstddef' file not found
#include <cstddef>
         ^
1 error generated.
rm: [...]/llvm_build/lib/Support/Release+Asserts/APFloat.d.tmp: No such file or directory
make[1]: *** [[...]/llvm_build/lib/Support/Release+Asserts/APFloat.o] Error 1
make: *** [all] Error 1

但是cstddef确实存在(在/usr/local/include/c++/4.8.0/中)。将--includedir=/usr/local/include/c++/4.8.0/添加到配置中也无济于事。

这可能是什么原因呢?


1
两点说明:在我看来,正确的选项是-I<path>,而不是--includedir<pat>。此外,至少在我的OSX机器上,cstddef/usr/include/c++/...中,而不是在/usr/local/include/c++/...中,但你的情况可能有所不同。 - Matthias
“--includedir” 是在 “./configure --help” 中提到的其他选项之一。由于我还将最新的 GCC 安装到该位置,因此 “cstddef” 位于 “/usr/local/…” 中。 - Appleshell
抱歉,我以为选项适用于clang。你有检查过clang的调用参数吗? - Matthias
2个回答

7

1
尝试使用cmake进行构建或重新安装以下依赖项。
mkdir build
cd build/
cmake .. \
-DCMAKE_BUILD_TYPE=Release \
-DLLVM_TARGETS_TO_BUILD="X86_64;JSBackend" \
-DLLVM_INCLUDE_EXAMPLES=OFF

我遇到了类似的错误,并安装了必要的gcc-4.8libstdc++-4.8库。 至少对我有效。

sudo apt-get install build-essential

祝你好运。希望它能正常工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接