我正在尝试包含一个包含在其父目录中的.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添加内容吗?事情是文件在那里!! 非常感谢提前!
答案 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结果和查看文件系统。