gpt4 book ai didi

cmake - 为什么 -DCMAKE_EXPORT_COMPILE_COMMANDS 不创建 compile_commands.json 文件

转载 作者:行者123 更新时间:2023-12-04 18:04:44 26 4
gpt4 key购买 nike

我的 cmake --version2.8.12.2

我使用这些命令配置我的项目构建:

cmake ../klein/ -DBUILD_KLEIN_DEPS=1 -DCMAKE_EXPORT_COMPILE_COMMANDS=1
cmake ../klein/ -DBUILD_KLEIN_DEPS=1 -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
cmake ../klein/ -DBUILD_KLEIN_DEPS=1 -DCMAKE_EXPORT_COMPILE_COMMANDS=on
CMAKE_EXPORT_COMPILE_COMMANDS=1 cmake ../klein/ -DBUILD_KLEIN_DEPS=1

来自干净的构建,以及来自现有成功构建的目录。并且想查看compiler_commands.json文件,但是没有出现。

应该在什么时候创建:在 cmake 之后,还是在 make 命令之后?它应该在./ 中,还是在../klein 目录中?我的 cmake 对此选项没有任何说明,但它总是提示未使用的构建变量。

它应该在“脏”目录(我已经成功构建过一次)中工作,还是只在空文件夹中重新运行时工作?

编辑:我在我的 ubuntu linux 机器上使用默认生成器“Unix Makefiles”

编辑2:我不是问题下项目的作者(我只是想用 rtags 探索它,这需要 compile_commands.json 文件),而且我对 CMake 机制不是很熟悉。然而,CMakeLists.txt 可能被配置为 super 构建(它确实下载并构建依赖项——如 llvm、z3 等),并且它包含 ExternalProject,但它也从源代码构建项目本身 (klein)。因此,正如我所说,这是一种混合。

最佳答案

你能具体说明你使用的是什么生成器吗?快速扫描 3.1.0 版的 cmake 源代码表明,此命令仍然仅在以下 2 种情况下可用。

if(CMAKE_GENERATOR MATCHES "Unix Makefiles")

if(CMAKE_GENERATOR MATCHES "Ninja")

如果您直接使用 Visual Studio,除非您想向 CMake 添加补丁,否则您就不走运了。否则,我认识许多使用过 Ninja 的 Windows 开发人员。一个优势是它的构建速度比 Visual Studio 快得多。如果您确实在使用 Ninja 或 Unix Makefile,那么就值得深入挖掘。

关于cmake - 为什么 -DCMAKE_EXPORT_COMPILE_COMMANDS 不创建 compile_commands.json 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29148089/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com