对于clangd的配置问题,可以用compile_commands.json来解决
compile_commands.json从哪来
在CMakeLists.txt来进行编译设置,然后在运行cmake时添加参数
-DCMAKE_EXPORT_COMPILE_COMMANDS=True
亦或者在CMakeLists.txt里添加set(CMAKE_EXPORT_COMPILE_COMMANDS True
我只是想写袖珍的程序,不用cmake怎么办
在clangd官网上提供了另一种解决方法,在小工程中可以使用compile_flags.txt
,这东西的好处在于它能手写,里面放的参数应该和clang++的编译参数一致,缺点是一行只能一个参数。所以语句-I libwidget/include
不得不写成
-I
libwidget/include/
当然你也可能注意到了,在vscode的clangd插件里有Arguments一项,可以设置很多东西
配的方法参照网上找的某个博主的博文。
但是,这里的设置是全局的,当你想对项目进行差异化调整,不好意思,不行;而且,在这里设置不了C++标准,项目的头文件查找。
我今天晚上发这个的原因是突然发现clangd不支持C++20的语法。
解决方法:在vscode打开的文件夹下新建文件compile_flags.txt
,输入-std=c++20
愉快的使用<format>
吧!