工程文件刚建立的时候,肯定没有compile_commands.json文件呀,那lsp-mode的工程文件怎么建立,一堆头文件和源文件报错。ccls也是报错一堆。 是不是要编写.ccls这个文件?那到底怎么写呢? 如果不是。,ccls这个文件是干嘛的?
1 个赞
How to generate a JSON Compilation Database?
Build systems and compilers
- Bazel
- Clang
- CMake
- Ninja
- Qbs
- waf
Specialized tools
- bear and intercept-build
- cdcd
- CodeChecker log
- compdb
- compiledb-generator
- Sourcetrail Extension for Visual Studio
- sw-btrace
- tee3/commands_to_compilation_database
- xcpretty
看你用的是哪一种构建工具。
1 个赞
一般不是手写的,是通过其他构建工具生成的,比如 cmake
cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=ON .
简单的项目,也可以手写 compile_flags.txt
,比如
我是bear生成的,刚开始肯定没有。
我说了刚开始有?
先为项目选定构建工具, 然后就可以生成 compile_commonds.json, 现在 ide 就是这样的.
要是随便写写, 就可以用 ccls 设置选项. 或者想阅读别人开源项目但是不想构建它, 可以用 ccls 设置项目根路径, 免得开 lsp 后, 找不到头文件, 各种报错.
可以写几个template工程,再写个shell指令,新建的时候直接复制对应的文件夹,直接将构建工具、compile_commands.json 还有源文件,git的init都设置好了……
对对对,我现在就是有这样的疑问,我要看别人的工程文件,怎么操作的问题。 ccls设置项目根路径怎么操作阿,应该就算.ccls这个文件吧,里面的ccls怎么写,包含所有头文件和源文件。
不失为一个办法,我开始也是这么想的,然后复制过来,直接能用了。 但是我还是想知道这个.ccls文件怎么写(包含各种头文件路径和源文件路径),然后放在别人的工程文件根目录,然后lsp-mode打开,直接就能阅读。
我也把我的vs_export for Visual Studio加上.几年前用过Sourcetrail,生成json文件,比较大的工程超级慢。后来就自己写了一个生成工具。一直用到现在。不知道Sourcetrail现在的速度是否有改善。