cmake - 如何更改 compile_commands.json 输出位置

6
这是一个C++项目结构的示例:

- {root}
    - CMakeLists.txt
    - build/
        - compile_commands.json  <-- This file gets generated  
    - src/
        - CMakeLists.txt
        - files here
    - compile_commands.json  <-- This is where I want compile_commands.json to be built to

如果我构建该项目,它会在“build”文件夹中创建一个“compile_commands.json”文件,但我实际上希望它位于“{root}”下面。是否有一种方法可以指定compile_commands.json的位置?或者我只能手动复制它吗?
以下是我通常用于构建项目的命令:
(如果已进入{root}) cmake . -B build 其他选择: cd {root}/build && cmake .. 在这两种情况下,compile_commands.json都将添加到build文件夹中。
2个回答

6

啊,太糟糕了。那样的话,我就得绕过这个问题去写代码。顺便说一下,谢谢你提供源链接! - ColinKennedy

0

这是一个老问题,但如果你使用neovim作为编辑器,并且想要在clangd下使用lspconfig,你需要在你的init.lua中添加以下代码:

require('lspconfig').clangd.setup{ init_options = {
   compilationDatabasePath = './build/debug'
 }
}

当然,你需要将路径更新为你拥有compile_commands.json文件的路径。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接