c++ 节点创建 CmakeLIST文件添加头文件和库 cmake命令没有报错,make命令报错
-
Cmake命令执行:
lei-wang@lei-wang-VMware-Virtual-Platform:~/robot1$ cmake .
-- Found rclcpp: 28.1.8 (/opt/ros/jazzy/share/rclcpp/cmake)
-- Found rosidl_generator_c: 4.6.5 (/opt/ros/jazzy/share/rosidl_generator_c/cmake)
-- Found rosidl_generator_cpp: 4.6.5 (/opt/ros/jazzy/share/rosidl_generator_cpp/cmake)
-- Using all available rosidl_typesupport_c: rosidl_typesupport_fastrtps_c;rosidl_typesupport_introspection_c
-- Using all available rosidl_typesupport_cpp: rosidl_typesupport_fastrtps_cpp;rosidl_typesupport_introspection_cpp
-- Found rmw_implementation_cmake: 7.3.2 (/opt/ros/jazzy/share/rmw_implementation_cmake/cmake)
-- Found rmw_fastrtps_cpp: 8.4.2 (/opt/ros/jazzy/share/rmw_fastrtps_cpp/cmake)
-- Using RMW implementation 'rmw_fastrtps_cpp' as default
-- /opt/ros/jazzy/include/rclcpp/opt/ros/jazzy/include/builtin_interfaces/opt/ros/jazzy/include/libstatistics_collector/opt/ros/jazzy/include/rcl/opt/ros/jazzy/include/rcl_interfaces/opt/ros/jazzy/include/rcl_yaml_param_parser/opt/ros/jazzy/include/rcpputils/opt/ros/jazzy/include/rcutils/opt/ros/jazzy/include/rmw/opt/ros/jazzy/include/rosgraph_msgs/opt/ros/jazzy/include/rosidl_dynamic_typesupport/opt/ros/jazzy/include/rosidl_runtime_c/opt/ros/jazzy/include/rosidl_runtime_cpp/opt/ros/jazzy/include/rosidl_typesupport_cpp/opt/ros/jazzy/include/statistics_msgs/opt/ros/jazzy/include/tracetools-- Configuring done (0.5s)
-- Generating done (0.0s)
-- Build files have been written to: /home/lei-wang/robot1make命令执行:
lei-wang@lei-wang-VMware-Virtual-Platform:~/robot1$ make
[ 50%] Building CXX object CMakeFiles/ros2_cpp_node.dir/ros2_cpp_node.cpp.o
In file included from /opt/ros/jazzy/include/rcl_interfaces/rcl_interfaces/srv/list_parameters.hpp:7,
from /opt/ros/jazzy/include/rclcpp/rclcpp/copy_all_parameter_values.hpp:21,
from /opt/ros/jazzy/include/rclcpp/rclcpp/rclcpp.hpp:171,
from /home/lei-wang/robot1/ros2_cpp_node.cpp:2:
/opt/ros/jazzy/include/rcl_interfaces/rcl_interfaces/srv/detail/list_parameters__struct.hpp:267:10: fatal error: service_msgs/msg/detail/service_event_info__struct.hpp: No such file or directory
267 | #include "service_msgs/msg/detail/service_event_info__struct.hpp"
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [CMakeFiles/ros2_cpp_node.dir/build.make:76: CMakeFiles/ros2_cpp_node.dir/ros2_cpp_node.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:85: CMakeFiles/ros2_cpp_node.dir/all] Error 2
make: *** [Makefile:101: all] Error 2这是CmakeLISTS文件内容
cmake_minimum_required(VERSION 3.8)
project(ros2_cpp)
add_executable(ros2_cpp_node ros2_cpp_node.cpp)find_package(rclcpp REQUIRED)
message(STATUS ${rclcpp_INCLUDE_DIRS})
message(STATUS ${rclcpp_LIBRAIES})target_include_directories(ros2_cpp_node PUBLIC ${rclcpp_INCLUDE_DIRS})
target_link_libraries(ros2_cpp_node ${rclcpp_LIBRAIES}) -
已找到问题点:安装的jazzy版本没有service相关的文件,target时出错,重新安装虚拟机,装humble版本后问题解决