ROS-CMakeLists文件编写

CMake可以用于编译C++代码,CMake默认生成的文件CMakeLists.txt内容繁多,在此给出CMakeLists的总体架构和ROS编译功能包实例参考,带注释。

1.总体架构

cmake_minimum_required()	#CMake的版本号
project()					#项目名称
find_package()				#找到编译需要的其他CMake/Catkin	package 
catkin_python_setup()		#catkin新加宏,打开catkin的Python Module的支持
add_message_files()			#catkin新加宏,添加自定义Message文件 
add_service_files()         #catkin新加宏,添加自定义Service文件 
add_action_files()          #catkin新加宏,添加自定义Action文件 
generate_message()			#catkin新加宏,生成不同语言版本的msg/srv/action接口 
catkin_package()			#catkin新加宏,生成当前package的cmake配置,供依赖本包的其他软件包调用 
add_library()				#生成库 
add_executable()			#生成可执行二进制文件
add_dependencies()			#定义目标文件依赖于其他目标文件,确保其他目标已被构建 
target_link_libraries()		#链接
catkin_add_gtest()			#catkin新加宏,生成测试
install()					#安装至本机

2.实例参考

cmake_minimum_required(VERSION 2.8.3)
# 项目名称
project(my_package)
# 编译依赖的包
find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  std_msgs
  message_generation
  geometry_msgs
)

# 指定需要转换的msg文件
add_message_files(FILES People.msg)
# 只有调用了下面的函数才会生成people.h文件
generate_messages(DEPENDENCIES geometry_msgs)

include_directories(include  ${catkin_INCLUDE_DIRS}) # 指定C++头文件路径
link_directories(${catkin_LIBRARY_DIRS})  #指定链接库的路径

# 运行依赖
catkin_package(
    CATKIN_DEPENDS message_runtime
)

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ROS2中,CMakeLists.txt是用来构建和编译ROS2软件包的配置文件。它包含了一系列指令和参数,用于指导构建系统进行编译和链接操作。根据引用\[1\]中的示例,可以看到CMakeLists.txt文件中首先指定了所需的CMake的最低版本,然后定义了项目名称为nav2_costmap_2d。引用\[2\]中的代码展示了在CMakeLists.txt中使用find_package命令来查找所需的依赖包,例如roscpp、rospy、std_msgs和message_generation。这些依赖包是在构建过程中需要的库和工具。最后,引用\[3\]提到了CMakeLists.txt的重要性,它决定了ROS2软件包的编译是否成功。因此,了解和正确编写CMakeLists.txt对于ROS2编程非常重要。 #### 引用[.reference_title] - *1* [详细分析一个ROS2 CMakeLists.txt文件](https://blog.csdn.net/shoufei403/article/details/125831552)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [ROS cmakelist](https://blog.csdn.net/zacharyzqc/article/details/103130779)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值