問題 CMake Error at /opt/ros/kinetic/share/genmsg/cmake/genmsg-extras.cmake:155 (message):
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
[email protected]:~/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
[email protected]:~/linshi3$