VSCode使用clangd插件找不到项目自己的头文件解决总结 | 您所在的位置:网站首页 › gcc找不到头文件sys › VSCode使用clangd插件找不到项目自己的头文件解决总结 |
如题,最近在编译一个c++项目,本来项目是visual studio的,但是我不想用这个ide来编写代码,因为有些操作感觉特别别扭,我自己已经把vscode的环境搭好了,所以就把项目转到vscode加一个CMakeLists.txt来进行编译。 因为这个项目严重依赖windows的东西,用gcc的kit编译很多报错不通过,只能使用visual studio来编译(我自己装的是visio studio community 2019版本),编译是编译能通过,但是项目代码里面的提示clangd提示找不到,我之前写过的一篇解决找不到标准库的Windows安装了Visio Studio 2019,在VSCode中clang报头文件iostream找不到的快速解决办法(记录)_pananflying的博客-CSDN博客https://blog.csdn.net/pananflying/article/details/122906054已经可以正常找得到标准库了,找了半天资料。 第一认知到,cmake对于不是unix makefile的不会生成compile_commands.json,对于本项目它是MSVC那肯定不会生成,我自己还试了半天的cmake设置CMAKE_EXPORT_COMPILE_COMMANDS=ON。 第二认知到,clangd可以设置--query-driver=编译器路径,可以方便的查到编译器相关的一些参数和头文件等。 第三,就是项目找不到自己头文件的解决办法,有点那啥,搜了半天,虽然搜到了答案,奈何被坑到家,下面这里的指定标准库写了可以设置系统的路径,但是他写的文字-l是小写的L,截图里应该是-I是大写的i,搞了半天拷贝他写的字换成我项目的头文件路径老是不行,我一度想放弃了。 WSL+VSCode+Clangd环境配置 (notion.site)https://airchaoz.notion.site/WSL-VSCode-Clangd-3d3356f6d64246178b0dccb64311d749 因为项目有区别,这个fallback flags不能配置在vscode中的settings中,所以我配置在了项目自己的settings.json中。 { "clangd.fallbackFlags": [ // 设置clangd代码检查的c++版本,目前默认是c++14 "-std=c++2a", // 增加项目自身头文件依赖路劲,因为使用vs2019编译不会生成compile_command.json文件,项目自己的头文件就不会找到 "-I${workspaceFolder}", // 项目根目录 "-I${workspaceFolder}/third_party/include" // 第三方依赖的头文件目录 ] }文件位置(项目部分关键字不便展示就打码了): 最后,请注意每修改/增加一次-I的参数必须要重启vscode才能生效。好了,头文件能找到了,搬砖去了。 |
CopyRight 2018-2019 实验室设备网 版权所有 |