我使用自动安装脚本(https://apt.llvm.org/llvm.sh)将llvm-17安装到我的Ubuntu机器中。
然后,我试图编译一些c++文件,但编译失败。
main.cc:1:10: fatal error: 'cstdint' file not found
1 | #include <cstdint>
| ^~~~~~~~~
1 error generated.
这是错误消息。我如何解决这个问题?
我使用自动安装脚本(https://apt.llvm.org/llvm.sh)将llvm-17安装到我的Ubuntu机器中。
然后,我试图编译一些c++文件,但编译失败。
main.cc:1:10: fatal error: 'cstdint' file not found
1 | #include <cstdint>
| ^~~~~~~~~
1 error generated.
这是错误消息。我如何解决这个问题?
1条答案
按热度按时间gcuhipw91#
当llvm.sh我试图复制时,www.example.com的错误被修复了,但我可以提供一些关于可能原因的见解。正如Rurou 2所分享的那样,当
clang
无法正确检测gcc
和libstdc++
时,就会出现问题。要解决这个问题,您可以添加-stdlib=libc++
参数,以利用llvm中嵌入的libc++
作为解决方法。对于那些手动构建llvm/clang的人,请注意clang's get_started page中提到的技巧。
如果你打算使用Clang的C支持,你可能需要告诉它如何找到你的C标准库头文件。一般来说,Clang会检测libstdc头文件的最佳版本并使用它们-它会查找libstdc的系统安装以及Clang本身附近的安装。如果您的配置不适合这两种情况,您可以使用-DGCC_PROFIXALL_PREFIX cmake选项来告诉Clang包含所需libstdc++的gcc安装在哪里。
为了确保
clang
可以正确定位gcc
,您应该始终指定GCC_INSTALL_PREFIX
。否则,llvm默认只搜索/
和../
,这有时可能不够。