【发布时间】:2015-03-19 15:03:48
【问题描述】:
我的cmake --version 是2.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: 我不是该问题下项目的作者(我只想使用需要 compile_commands.json 文件的rtags 来探索它),而且我对 CMake 机制也不是很熟悉。但是,CMakeLists.txt 可能被配置为超级构建(它确实下载并构建依赖项 - 像 llvm、z3、...),它包括 ExternalProject,但它也从源代码构建项目本身(klein)。正如我所说,这是一个混合体。
【问题讨论】:
-
乍一看,试试 -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=ON 类型说明符很重要。
-
嗯。现在它抱怨无用:
CMake Warning: Manually-specified variables were not used by the project: CMAKE_EXPORT_COMPILE_COMMANDS -
嗯,听起来很奇怪,我觉得这就是进步。我对 CMAKE_EXPORT_COMPILE_COMMANDS 的了解还不够,还没有建议您如何在内部使用它。如果它与生成器相关,您可以考虑以下线程。 stackoverflow.com/questions/20059670/…