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.json
的 CMakeLists.txt
文件中。使用此文件,include
指令可以正常工作。
我目前正在使用来自 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.json
的 CMakeLists.txt
文件中。使用此文件,include
指令可以正常工作。