ROS出现Cannot find source file的错误和add_dependencies,add_executable,target_link_libraries三者先后顺序不对所造成的错误。

ROS出现Cannot find source file的错误和add_dependencies,add_executable,target_link_libraries三者先后顺序不对所造成的错误。_第1张图片

出现上面这个报错,往往是 CMakeLists.txt中的问题

add_executable(server ~/tutorial_ws/src/dynamic_tutorials/src/server.cpp)

这行代码的问题,搞不清楚就直接用直接路径,从根目录开始,就可以找到了。

ROS出现Cannot find source file的错误和add_dependencies,add_executable,target_link_libraries三者先后顺序不对所造成的错误。_第2张图片

还有一个经常会发生的错误就是这三个文件的先后顺序,上面是正确的

# make sure configure headers are built before any node using them
add_dependencies(server ${PROJECT_NAME}_gencfg)

# for dynamic reconfigure
add_executable(server ~/tutorial_ws/src/dynamic_tutorials/src/server.cpp)

# for dynamic reconfigure
target_link_libraries(server ${catkin_LIBRARIES})

add_dependencies在前面会报这个错误,没有可执行文件

ROS出现Cannot find source file的错误和add_dependencies,add_executable,target_link_libraries三者先后顺序不对所造成的错误。_第3张图片

# for dynamic reconfigure
target_link_libraries(server ${catkin_LIBRARIES})

# for dynamic reconfigure
add_executable(server ~/tutorial_ws/src/dynamic_tutorials/src/server.cpp)

# make sure configure headers are built before any node using them
add_dependencies(server ${PROJECT_NAME}_gencfg)

target_link_libraries在最前面会报这个错

经过尝试发现add_executable必须是第一个,add_dependencies和target_link_libraries谁先谁后没有关系。

你可能感兴趣的:(ROS出现Cannot find source file的错误和add_dependencies,add_executable,target_link_libraries三者先后顺序不对所造成的错误。)