Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/130.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ linux上的clangd找不到默认头_C++_Linux_Ubuntu_Emacs_Clang - Fatal编程技术网

C++ linux上的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上找不到任何信息,因此将解决方案发布在此

我已经安装了官方PPA中最新的LLVM工具链,包括clang、clang tools extra、lldb、lld、libc++和libc++abi。我正试着用它

除了clangd找不到默认的头文件(如内存、向量等)外,所有这些都可以正常工作。我的代码很好,它通常使用clang编译。我的compile_commands.json也可以

如何让clangd工作


编辑:从源代码中删除了关于构建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上使用的位置,并最终成功了。