Cmake 添加包含路径到 clang

Cmake add include paths to clang

我目前正在使用来自 GitHub 的 Atom 使用 C++ 进行开发。我找到了插件 autocomplete-clang,它为 Atom 添加了自动完成功能。 我的问题是,我使用 cmake 来构建我的程序,我也使用这样的项目结构:

- Sensors
-- src
-- inc
- LowLevel
-- src
-- inc
- System
-- src
-- inc

我只在代码的 someSourceFileFromLowLevel.cxx 中使用 #include "someHeaderFromSystem.h"。这意味着,clang 找不到包含文件。

有没有办法在不改变任何全局系统变量的情况下告诉 clang 在哪里找到文件?

没问题,这就是 include_directories 的目的。

它指定编译器将在其中搜索的其他包含目录。


如果你有一个 CMakeLists.txt 在传感器、低级别、系统中,你可以在每个中添加:

include_directories(inc)

如果你只有一个主CMakeLists.txt:

include_directories(Sensors/inc LowLevel/inc System/inc)

set(CMAKE_EXPORT_COMPILE_COMMANDS ON) 添加到生成文件 compile_commands.jsonCMakeLists.txt 文件中。使用此文件,include 指令可以正常工作。