【发布时间】:2018-04-07 00:43:47
【问题描述】:
我一直在使用 cmake 和 vim 并生成一个 compile_commands.json 文件来获得自动完成功能。我遇到的问题是我有一个文件结构
build include src
我的所有头文件都在包含目录和 src 中的源代码中。在使用 cmake 时,我设置 set(CMAKE_EXPORT_COMPILE_COMMANDS ON) 为项目生成代码完成数据库。生成compile_commands.json 时,它仅适用于包含我的CMakeLists.txt 文件(src)的文件夹,因此我没有完成include 目录中的头文件。
有没有办法为这个单独的文件夹生成compile_commands.json?我最终是否需要将所有头文件与我的源代码放在同一个文件夹中?
只是为了澄清只有一个 cmake 项目正在构建,因此头文件不对应于单独的项目,例如库。
我也搜索了很多,但主要是发现与无法生成 compile_commands.json 的人有关的事情,但是我还在其他网站上看到 clang 无法解析头文件?我看到的关于 clang 不解析头文件以生成完成数据库的信息是几年前的,但这是我在这里遇到麻烦的原因吗?
另外,如果有人知道可以解决我的情况的解决方法,那也将不胜感激。
如果这有助于澄清我的情况,请参阅下面的 CMakeLists.txt 文件,谢谢:
CMAKE_MINIMUM_REQUIRED(VERSION 3.11.0 FATAL_ERROR)
project(inheritance VERSION 0.1.1 LANGUAGES CXX)
# add executable
add_executable(inheritance main.cpp CommissionEmployee.cpp)
target_include_directories(inheritance PRIVATE ../include)
target_compile_features(inheritance PRIVATE cxx_std_14)
# generate compile_commands.json
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
【问题讨论】:
标签: c++ vim cmake youcompleteme