C++ linux上的clangd找不到默认头
我已经安装了官方PPA中最新的LLVM工具链,包括clang、clang tools extra、lldb、lld、libc++和libc++abi。我正试着用它 除了clangd找不到默认的头文件(如内存、向量等)外,所有这些都可以正常工作。我的代码很好,它通常使用clang编译。我的compile_commands.json也可以 如何让clangd工作C++ linux上的clangd找不到默认头,c++,linux,ubuntu,emacs,clang,C++,Linux,Ubuntu,Emacs,Clang,我已经安装了官方PPA中最新的LLVM工具链,包括clang、clang tools extra、lldb、lld、libc++和libc++abi。我正试着用它 除了clangd找不到默认的头文件(如内存、向量等)外,所有这些都可以正常工作。我的代码很好,它通常使用clang编译。我的compile_commands.json也可以 如何让clangd工作 编辑:从源代码中删除了关于构建llvm+clang的内容,因为它的操作不正确。我在internet上找不到任何信息,因此将解决方案发布在此
编辑:从源代码中删除了关于构建llvm+clang的内容,因为它的操作不正确。我在internet上找不到任何信息,因此将解决方案发布在此处。 假设llvm工具链安装在
/usr/lib/llvm-8
中。
答案是:
sudo ln -s /usr/lib/llvm-8/include/c++/v1 /usr/include/c++/v1
就这样。祝您好运。您可能应该说明构建LLVM的步骤。有一些可选组件可以构建,它们对构建树中的位置很敏感。您是否也构建并安装了
libc++
和libc++abi
?另见。它构建了一个较旧版本的Clang,但向您展示了如何在配置之前将组件放置在树中。我已经删除了关于从源代码构建llvm的内容,因为我还没有安装它。可能是这样,但我想从官方ppa安装后,一切都会正常工作。我觉得这听起来不正确。编译器应该知道它的C++头在哪里。听起来构建脚本有问题。我已经安装了所有llvm包,包括libc++。问题是clang本身和clangd由于某种原因在linux上查找libc++头时有不同的逻辑,所以clang工作得很好,clangd没有。在深入研究了clang和clangd源代码之后,我决定尝试将libc++头的位置链接到clang在linux上使用的位置,并最终成功了。