问题 CMake Error at /opt/ros/kinetic/share/genmsg/cmake/genmsg-extras.cmake:155 (message):
1、具体问题
CMake Error at /opt/ros/kinetic/share/genmsg/cmake/genmsg-extras.cmake:155 (message):
generate_messages() must be called after add_service_files()
Call Stack (most recent call first):
linlinshi/CMakeLists.txt:66 (add_service_files)
-- Configuring incomplete, errors occurred!
See also "/home/zby/linshi3/build/CMakeFiles/CMakeOutput.log".
See also "/home/zby/linshi3/build/CMakeFiles/CMakeError.log".
Makefile:754: recipe for target 'cmake_check_build_system' failed
make: *** [cmake_check_build_system] Error 1
Invoking "make cmake_check_build_system" failed
zby@zby:~/linshi3$ catkin_make
2、背景
在跟古月老师的ROS视频课中出现的一个问题
在做话题订阅发布之后创建了功能包内的消息类型,如下所示:
3、创建服务,添加服务相关配置
但是出现如下错误:
CMake Error at /opt/ros/kinetic/share/genmsg/cmake/genmsg-extras.cmake:155 (message):
generate_messages() must be called after add_service_files()
Call Stack (most recent call first):
linlinshi/CMakeLists.txt:66 (add_service_files)
-- Configuring incomplete, errors occurred!
See also "/home/zby/linshi3/build/CMakeFiles/CMakeOutput.log".
See also "/home/zby/linshi3/build/CMakeFiles/CMakeError.log".
Makefile:754: recipe for target 'cmake_check_build_system' failed
make: *** [cmake_check_build_system] Error 1
Invoking "make cmake_check_build_system" failed
4、问题分析
添加服务配置应该在添加消息之上,意为先配置服务后配置消息
Generate_messages(DEPENDENCIES std_msgs)
## Generate services in the 'srv' folder
# add_service_files(
# FILES
# Service1.srv
# Service2.srv
# )
add_service_files(FILES AddTwoInts.srv)
5、变更为
## Generate services in the 'srv' folder
# add_service_files(
# FILES
# Service1.srv
# Service2.srv
# )
add_service_files(FILES AddTwoInts.srv)
Generate_messages(DEPENDENCIES std_msgs)
6、再次编译,即可成功
[ 80%] Built target linlinshi_gencpp
Scanning dependencies of target client
Scanning dependencies of target server
[ 85%] Building CXX object linlinshi/CMakeFiles/client.dir/src/client.cpp.o
[ 90%] Building CXX object linlinshi/CMakeFiles/server.dir/src/server.cpp.o
[ 95%] Linking CXX executable /home/zby/linshi3/devel/lib/linlinshi/client
[100%] Linking CXX executable /home/zby/linshi3/devel/lib/linlinshi/server
[100%] Built target client
[100%] Built target server
zby@zby:~/linshi3$