文章目录
- cmakelists文件整体架构
- 分块讲解
- 1.CMake版本
- 2.软件包名称
- 3.查找相关的CMake包
- 4.消息/服务/动作生成器
cmakelists文件整体架构
所需CMake版本(cmake_minimum_required)
软件包名称(project())
查找构建所需的其他CMake / Catkin软件包(find_package())
启用Python模块支持(catkin_python_setup())
消息/服务/动作生成器(add_message_files(),add_service_files(),add_action_files())
调用消息/服务/动作生成(generate_messages())
指定package build info export(catkin_package())
要建立的库/可执行文件(add_library()/ add_executable()/ target_link_libraries())
测试建立(catkin_add_gtest())
安装规则(install())
- 注:CMakeLists.txt文件
必须遵循此格式且按照配置的顺序进行
,否则您的包将无法正确构建。
分块讲解
1.CMake版本
cmake_minimum_required(VERSION 2.8.3)
- 每个catkin CMakeLists.txt文件必须以需要的CMake版本开始。 Catkin需要2.8.3或更高版本。
2.软件包名称
project(robot_brain)
- 所使用的项目名是由CMake项目功能指定的包的名称
3.查找相关的CMake包
find_package(catkin REQUIRED)
- 需要使用CMake的find_package()函数指定需要找到哪些其他CMake包来构建我们的项目
- 但是至少有一个依赖于catkin:
- 若所需多个依赖包:
find_package(catkin REQUIRED)
find_package(roscpp REQUIRED)
find_package(rospy REQUIRED)
find_package(std_msgs REQUIRED)
也可以写成:
find_package(catkin REQUIRED COMPONENTS
roscpp
rospy
std_msgs
)
- 如果要使用 C++ 和Boost,则需要引用 find_package 包含 Boost,并且指明 Boost 的类型,如使用 Boost threads,则:
find_package(Boost REQUIRED COMPONENTS thread)
4.消息/服务/动作生成器
find_package(catkin REQUIRED COMPONENTS ...)
add_message_files(...)
add_service_files(...)
add_action_files(...)
generate_messages(...)
catkin_package(...)
...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)