济源市网站建设_网站建设公司_UX设计_seo优化
2026/1/18 1:05:39 网站建设 项目流程

在 jetson orin NX上编译ros 1 功能包时报错:

/home/nv/ws/slcar/src/bag_ants/ants_explorer_unknown/tsp_solver/lkh_mtsp_solver/src2/mtsp_node.cpp:6:10: fatal error: lkh_mtsp_solver/SolveMTSP.h: 没有那个文件或目录 6 | #include <lkh_mtsp_solver/SolveMTSP.h> | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ compilation terminated.

解决方案:

在对应的包的CMakeLists.txt中,在最后一行target_link_libraries之前增加add_dependencies操作,如下所示

add_dependencies(mtsp_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS}) target_link_libraries(mtsp_node ${catkin_LIBRARIES} lkh_mtsp_solver -lm)

解释如下

add_dependencies(mtsp_node ${${PROJECT_NAME}_EXPORTED_TARGETS} ${catkin_EXPORTED_TARGETS})

mtsp_node添加编译依赖关系,确保在编译mtsp_node之前,以下两类目标已经构建完成:

  • ${${PROJECT_NAME}_EXPORTED_TARGETS}
    表示当前 ROS 包(即lkh_mtsp_solver)中通过add_library()add_message_files()等生成的自定义目标(例如消息.msg、服务.srv、动作.action对应的头文件,或本包内定义的库)。
    例如,如果你的包定义了自定义消息,那么必须等这些消息的头文件生成后,才能编译使用它们的节点。

  • ${catkin_EXPORTED_TARGETS}
    表示所有被find_package(catkin REQUIRED COMPONENTS ...)声明的依赖包中需要先生成的目标(比如其他 ROS 包的消息头文件、动态库等)。

目的:避免“头文件未生成就编译”的错误,尤其在使用自定义消息/服务时必不可少

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询