为Visual Studio 2015/17/19 生成clangd/ccls需要的compile_commands.json

不知道论坛里面做windows c++开发的多不多。之前一直做windows下的c++开发,用的是Visual Studio管理项目。不过当时没有办法为sln生成compile_commands.json文件,后来有一个插件可以,不过速度感人,自己就简单了写了一个分析sln工程然后生成compile_commands.json的小工具。用了几年下来,感觉还可以,反正ccls和clangd是能正常加载使用的。虽然我已经基本不用了,但是或许有朋友需要这个。可以尝试一下。vs_export

4 个赞

现在干啥去了,我也是windows的坑还没跳出来 :joy:

因为现在基本换成cmake和qmake了,并且主要在linux下开发了。不过cmake如果生成sln工程而不是ninja工程, 我还是需要vs_export为我生成json文件的。我总感觉这个应该用的人比较少。

我有放二进制的文件,可以直接下载二进制的文件下来,省的编译了。

感谢分享。

请问下,用这个工具生成了 compile_commands.json 后,clangd 是不是就认识 VS 的 sln 项目了?

是的。当初就是为了这个目的。

:+1:,看来这个对我有帮助。回头试试看。

可以用xmake生成,也很方便

xmake project -k compile_commands

xmake 可以用于 Visual Studio 的 C/C++ 项目??

单纯的xmake调用msvc编译器,很早就可以了。 问题在于之前如果compile_commands里面有msvc的一些参数,mingw 的 clangd 解析得不好。

现在vscode + xmake + clangd + msvc 也可以配合得很好了,从vs 2019开始提供了clang(最好用vs2022的,现在是clang 15,2019是clang 12)。

用visual studio installer 装一下clang,把他的clangd加到环境变量,就可以完美解析compile_commands了

我把生成的compile_commands.json放在项目根目录,可是转到定义还是不好用。不知道是哪里还漏了

不在于放在哪,放在哪里得看你的clangd或者ccls 去哪找这个文件,clangd和ccls都有参数的可以指定的