在父目录中添加头文件

时间:2017-05-03 10:44:10

标签: c++ compilation cmake include include-path

我正在尝试包含一个包含在其父目录中的.h文件。看起来像这样:

.
├── fan_controller
├── ip_camera
├── motors
├── pose_and_distance
└── serial_communication

编辑:他们是不同的"子项目"他们每个都包含一个独立的CMakeList,我在子项目Fan_controller中工作,其主要内容及其CmakeList,我想使用motors目录中的文件。

他们有不同的文件,我在fan_controller的主要工作,我试图通过这样做包含一个在电机内部的文件:

#include "../motors/src/resources/classes/Arduino.h"

如果我把全局路径设置得很好:

#include "/home/kailegh/catkin_ws/src/project/motors/src/resources/classes/Arduino.h"

问题是文件在那里,我已经多次检查并且QT自动填充路径,所以它找到了它。但是,当我尝试编译时,它说:

no such file or directory

我不知道为什么会发生这种情况,我应该向CmakeList添加内容吗?事情是文件在那里!! 非常感谢提前!

1 个答案:

答案 0 :(得分:2)

假设您在根文件夹(包含fan_controller的文件夹,ip_camera)中有CMakeLists.txt,请添加以下 include_directory 语句:

cmake_minimum_required(VERSION 2.8.12)
...
include_directory(fan_controller/src/resources/classes)
# if required: include_directory(ip_camera/src/resources/classes)
if required: include_directory(motors/src/resources/classes)

set(SOURCES fan_controller/src/resources/classes
    fan_controller/src/resources/classes/myfancontroller.cpp
)

add_executable(myfan_controller)

假设您有独立项目,您可以使用:

PS:QtCreator使用CMakeLists.txt结果查看文件系统。