我目前正在使用GitHub的Atom开发C ++。我找到了插件autocomplete-clang
,它为Atom添加了自动完成功能。
我的问题是,我使用cmake来构建我的程序,我也使用这样的项目结构:
- Sensors
-- src
-- inc
- LowLevel
-- src
-- inc
- System
-- src
-- inc
我只在代码中的#include "someHeaderFromSystem.h"
中使用someSourceFileFromLowLevel.cxx
。这意味着,该clang找不到包含文件。
有没有办法告诉clang在哪里找到文件,哪些不会改变任何全局系统变量?
答案 0 :(得分:0)
没问题,那是include_directories
的用途。
它指定编译器将搜索的其他包含目录。
如果您在Sensors,LowLevel,System中有 CMakeLists.txt ,则可以在每个中添加:
include_directories(inc)
如果您只有主CMakeLists.txt
:
include_directories(Sensors/inc LowLevel/inc System/inc)
答案 1 :(得分:0)
将set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
添加到生成文件CMakeLists.txt
的{{1}}文件中。使用此文件,compile_commands.json
指令正常工作。