Luc*_*cas 8 c++ json cmake clang
我是CMake的新手,我正在尝试创建与clang一起使用的compile_commands.json文件,但是我在生成文件时遇到了一些困难,我不知道为什么.我已经能够使用cmake来编译person我下面的二进制文件了,但在那之后我成功了,我一直无法输出它来输出编译命令.
我也尝试过-DCMAKE_EXPORT_COMPILE_COMMANDS = ON标志,但这也不起作用.到目前为止,没有错误,但也没有输出.
这是我的CMakeLists.txt文件的样子:
cmake_minimum_required (VERSION 2.6)
project (Tutorial)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
add_executable(person Person.cc Pirate.cc main.cc)
Run Code Online (Sandbox Code Playgroud)
PJ1*_*127 11
我有同样的问题,compile_commands.json不是用 cmake 生成的,版本 3.16.0。它是我使用Ninja生成器时生成的,但不是Unix Makefiles。
那次讨论给了我解决办法:
set(CMAKE_EXPORT_COMPILE_COMMANDS ON) # does not produce the json file
set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE INTERNAL "") # works
Run Code Online (Sandbox Code Playgroud)
这最终成为使用旧版CMake的问题.我最终安装了最新版本,它按预期工作.
根据Clang文档
"目前CMake(自2.8.5开始)支持使用选项CMAKE_EXPORT_COMPILE_COMMANDS生成Unix Makefile构建(Ninja构建)的编译数据库."