/home/ros/catkin_ctr/src/precise_land/src/traj_pub.cpp:3:10: fatal error: quadrotor_msgs/PositionCommand.h: 没有那个文件或目录 3 | #include "quadrotor_msgs/PositionCommand.h" | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated. make[2]: *** [precise_land/CMakeFiles/traj_pub_node.dir/build.make:63:precise_land/CMakeFiles/traj_pub_node.dir/src/traj_pub.cpp.o] 错误 1 make[1]: *** [CMakeFiles/Makefile2:2170:precise_land/CMakeFiles/traj_pub_node.dir/all] 错误 2 make[1]: *** 正在等待未完成的任务....
时间: 2023-07-08 11:51:19 浏览: 65
这个错误提示是说在你的代码中包含了一个名为quadrotor_msgs/PositionCommand.h的头文件,但编译器找不到这个文件。这通常是由于你的编译器无法找到这个头文件所在的目录,或者这个头文件本身不存在。
你可以尝试使用以下命令来查找这个头文件所在的目录:
```
rospack find quadrotor_msgs
```
这个命令会返回 quadrotor_msgs 包的路径。然后你可以在你的 C++ 代码中使用这个路径来包含这个头文件,例如:
```
#include <quadrotor_msgs/PositionCommand.h>
```
或者你可以在 CMakeLists.txt 文件中添加以下行,以确保编译器能够正确找到这个头文件:
```
include_directories(${catkin_INCLUDE_DIRS} ${Eigen_INCLUDE_DIRS} ${Boost_INCLUDE_DIRS} ${OpenCV_INCLUDE_DIRS} ${PCL_INCLUDE_DIRS} ${PROJECT_SOURCE_DIR}/include)
```
确保你的头文件路径正确,这样编译器就能够正确地找到这个头文件并编译你的代码了。
相关问题
/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>
这个错误提示是说在你的代码中包含了一个名为~/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"
```
这个路径是相对于当前文件的路径,可以避免使用绝对路径。修改后,再次尝试编译代码,应该就可以找到该头文件了。