点亮生活,绽放阳光——向日葵视频,你的快乐充电站

核心内容摘要

霓虹下的暗影:二月KTV惊魂夜,谁在窥探你的隐私?
JMComic:不止是漫画,更是你我共鸣的情感归宿

探索隐秘角落:当“污”遇上创意,点燃无限可能

在ROS2 Jazzy中自定义C库及其应用需要遵循ROS2的规范以确保库能够正确编译、安装并被其他包调用。

以下是一个详细的范例包括自定义C库的创建、编译以及在另一个包中的应用。

自定义C库的创建与编译创建库包创建一个新的ROS2工作空间如果尚未创建mkdir-p ~/ros2_ws/srccd~/ros2_ws/src创建一个新的包用于存放自定义库ros2 pkg create --build-type ament_cmake --license Apache-

0 ros2_cpp_lib进入包目录并创建必要的文件夹结构cdros2_cpp_libmkdir-p include/ros2_cpp_lib src编写库头文件在include/ros2_cpp_lib/目录下创建头文件ros2_cpp_lib.hpp#ifndefROS2_CPP_LIB_HPP#defineROS2_CPP_LIB_HPP#includerclcpp/rclcpp.hppnamespaceros2_cpp_lib{classros2_cpp_lib:publicrclcpp::Node{public:ros2_cpp_lib(conststd::stringnode_name);~ros2_cpp_lib();voidsum(inta,intb);};}// namespace ros2_cpp_lib#endif// ROS2_CPP_LIB_HPP编写库源文件在src/目录下创建源文件ros2_cpp_lib.cpp#includeros2_cpp_lib/ros2_cpp_lib.hppnamespaceros2_cpp_lib{ros2_cpp_lib::ros2_cpp_lib(conststd::stringnode_name):Node(node_name){RCLCPP_INFO(this-get_logger(),ros2_cpp_lib_node has been started.);}ros2_cpp_lib::~ros2_cpp_lib(){RCLCPP_INFO(this-get_logger(),ros2_cpp_lib_node has been stopped.);}voidros2_cpp_lib::sum(inta,intb){RCLCPP_INFO(this-get_logger(),Sum of %d and %d is %d,a,b,ab);}}// namespace ros2_cpp_lib配置CMakeLists.txt编辑CMakeLists.txt文件添加以下内容cmake_minimum_required(VERSION

3.

project(ros2_cpp_lib) if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES Clang) add_compile_options(-Wall -Wextra -Wpedantic) endif() # find dependencies find_package(ament_cmake REQUIRED) find_package(rclcpp REQUIRED) # COMPILE add_library(ros2_cpp_lib SHARED src/ros2_cpp_lib.cpp) target_compile_features(ros2_cpp_lib PUBLIC cxx_std_

target_include_directories(ros2_cpp_lib PUBLIC $BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include $INSTALL_INTERFACE:include/ros2_cpp_lib ) ament_target_dependencies(ros2_cpp_lib PUBLIC rclcpp) # EXPORTS ament_export_targets(export_ros2_cpp_lib HAS_LIBRARY_TARGET) ament_export_dependencies(rclcpp) # INSTALL install( DIRECTORY include/ros2_cpp_lib DESTINATION include ) install( TARGETS ros2_cpp_lib EXPORT export_ros2_cpp_lib ARCHIVE DESTINATION lib LIBRARY DESTINATION lib RUNTIME DESTINATION bin INCLUDES DESTINATION include ) if(BUILD_TESTING) find_package(ament_lint_auto REQUIRED) set(ament_cmake_uncrustify_FOUND TRUE) set(ament_cmake_xmllint_FOUND TRUE) ament_lint_auto_find_test_dependencies() endif() ament_package()编译库返回工作空间根目录并编译cd~/ros2_ws colcon build --packages-up-to ros2_cpp_lib

在另一个包中应用自定义库创建应用包在src/目录下创建一个新的包用于应用自定义库ros2 pkg create --build-type ament_cmake --license Apache-

0 ros2_cpp_lib_demos --dependencies rclcpp ros2_cpp_lib编写应用节点在ros2_cpp_lib_demos/src/目录下创建节点文件demo_node.cpp#includerclcpp/rclcpp.hpp#includeros2_cpp_lib/ros2_cpp_lib.hppclassDemoNode:publicrclcpp::Node{public:DemoNode():Node(demo_node){autolib_nodestd::make_sharedros2_cpp_lib::ros2_cpp_lib(lib_node);lib_node-sum(3,

;}};intmain(intargc,char**argv){rclcpp::init(argc,argv);rclcpp::spin(std::make_sharedDemoNode());rclcpp::shutdown();return0;}配置CMakeLists.txt编辑ros2_cpp_lib_demos/CMakeLists.txt文件添加以下内容cmake_minimum_required(VERSION

3.

project(ros2_cpp_lib_demos) if(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_CXX_COMPILER_ID MATCHES Clang) add_compile_options(-Wall -Wextra -Wpedantic) endif() # find dependencies find_package(ament_cmake REQUIRED) find_package(rclcpp REQUIRED) find_package(ros2_cpp_lib REQUIRED) # COMPILE add_executable(demo_node src/demo_node.cpp) target_compile_features(demo_node PUBLIC cxx_std_

ament_target_dependencies(demo_node rclcpp ros2_cpp_lib) # INSTALL install(TARGETS demo_node DESTINATION lib/${PROJECT_NAME} ) if(BUILD_TESTING) find_package(ament_lint_auto REQUIRED) set(ament_cmake_uncrustify_FOUND TRUE) set(ament_cmake_xmllint_FOUND TRUE) ament_lint_auto_find_test_dependencies() endif() ament_package()编译并运行应用返回工作空间根目录并编译cd~/ros2_ws colcon build --packages-up-to ros2_cpp_lib_demos运行应用节点sourceinstall/setup.bash ros2 run ros2_cpp_lib_demos demo_node

17.nom-17.nom最新版v.17.14.03-2265安卓网应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123