/home/ros/catkin_ctr/src/precise_land/src/traj_pub.cpp:3:10: fatal error: ~/catkin_ctr/src/precise_land/include/quadrotor_msgs/PositionCommand.h: 没有那个文件或目录 3 | #include <~/catkin_ctr/src/precise_land/include/quadrotor_msgs/PositionCommand.h>
时间: 2023-07-08 08:51:19 浏览: 107
这个错误提示是说在你的代码中包含了一个名为~/catkin_ctr/src/precise_land/include/quadrotor_msgs/PositionCommand.h的头文件,但编译器找不到这个文件。在 C++ 的 #include 指令中,你不能使用波浪线(~)来代替绝对或相对路径,因为编译器不知道这个波浪线表示什么意思。你需要使用正确的文件路径来包含这个头文件。你可以尝试使用相对路径或绝对路径来包含这个头文件,例如:
```
#include "quadrotor_msgs/PositionCommand.h" // 使用相对路径
#include "/home/ros/catkin_ctr/src/precise_land/include/quadrotor_msgs/PositionCommand.h" // 使用绝对路径
```
确保你的头文件路径正确,这样编译器就能够正确地找到这个头文件并编译你的代码了。
相关问题
/home/ros/catkin_ctr/src/precise_land/src/traj_pub.cpp:3:10: fatal error: ../Utilsquadrotor_msgs/PositionCommand.h: 没有那个文件或目录 3 | #include <../Utilsquadrotor_msgs/PositionCommand.h>
这个错误提示显示编译器找不到`PositionCommand.h`头文件,这也是因为路径设置不正确导致的。
在头文件中使用了错误的相对路径`../Utilsquadrotor_msgs/PositionCommand.h`来引用`PositionCommand.h`文件,正确的相对路径应该是`../Utils/quadrotor_msgs/PositionCommand.h`。
因此,需要将代码中的头文件引用修改为以下形式:
```
#include "../Utils/quadrotor_msgs/PositionCommand.h"
```
这个路径是相对于当前文件的路径,可以避免使用绝对路径。修改后,再次尝试编译代码,应该就可以找到该头文件了。
/home/ros/catkin_ctr/src/precise_land/src/traj_pub.cpp:3:10: fatal error: ../Utils/quadrotor_msgs/PositionCommand.h: 没有那个文件或目录 3 | #include "../Utils/quadrotor_msgs/PositionCommand.h"
这个错误提示是说在编译 `traj_pub.cpp` 文件时,找不到 `../Utils/quadrotor_msgs/PositionCommand.h` 文件。这很可能是因为编译器无法找到该文件所在的路径。
要解决这个问题,你可以尝试以下几个方法:
1. 确认 `../Utils/quadrotor_msgs/PositionCommand.h` 文件是否存在,以及其路径是否正确。如果该文件不存在或者路径不正确,需要将其放到正确的位置。
2. 确认 `quadrotor_msgs` 包是否已经被编译。如果该包还没有被编译,需要先编译该包。
3. 确认 `quadrotor_msgs` 包是否已经被包含在你的ROS工作空间中。如果该包没有被包含在你的ROS工作空间中,需要将其添加到ROS工作空间中。
4. 确认 `CMakeLists.txt` 文件中是否正确地添加了 `quadrotor_msgs` 包的依赖关系。你需要在 `CMakeLists.txt` 文件中添加以下内容:
```
find_package(catkin REQUIRED COMPONENTS quadrotor_msgs)
include_directories(${catkin_INCLUDE_DIRS})
target_link_libraries(<your_target_name> ${catkin_LIBRARIES})
```
其中,`<your_target_name>` 是指你要编译的目标程序的名称。这些命令将告诉编译器在编译时需要链接 `quadrotor_msgs` 包。
如果你按照以上步骤仍然无法解决问题,可以尝试在ROS官方论坛或者ROS Answers上发帖求助,以获取更多的帮助。
阅读全文