ROS之CMakeLists.txt 文件

CMakeLists.txt是ROS软件包的构建基石,用于描述如何构建代码和安装位置。主要内容包括设置CMake版本、项目名称、查找依赖包、启用Python模块、生成消息/服务/动作、指定构建信息、构建库/可执行文件、测试和安装规则。文章详细解释了find_package()的工作机制,以及catkin_package()、add_library()、add_executable()和target_link_libraries()等关键函数的用法。
摘要由CSDN通过智能技术生成

 http://blog.csdn.net/u013243710/article/details/35795841

 http://wiki.ros.org/catkin/CMakeLists.txt 

文件CMakeLists.txt是用于构建软件包的CMake构建系统的输入。任何符合cmake的包都包含一个或多个CMakeLists。txt文件描述如何构建代码并将其安装到何处。

 

结构和机制

1.      Required CMake Version(cmake_minimum_required)

cmake_minimum_required(VERSION 2.8.3)   //catkin必须是2.8.3,或以上版本

2.      Package Name (project())

project(robot_brain)    //project作用 // 在CMake中,您可以在任何需要的地方使用变量${PROJECT_NAME}在CMake脚本的任何地方引用项目名称。

3.      Find other CMake/Catkinpackages needed for build (find_package())

find_package(catkin REQUIRED)   //:我们需要指定使用CMakefind_package函数来构建我们的项目所需的其他CMake包。至少有一个:    //如果您的项目依赖于其他的包,它们将自动转换成catkin的组件(在CMake中)。如果您将其指定为组件,而不是在这些包上使用find_package,它将使活更轻松。例如,如果您使用package nodelet:find_package(catkin REQUIRED COMPONENTS nodelet)

4.      Enable Python module support(catkin_python_setup())

5.      Message/Service/ActionGenerators (add_message_files(), add_service_files(), add_action_files())

6.      Invoke message/service/actiongeneration (generate_messages())

7.      Specify package build infoexport (catkin_package())

8.      Libraries/Executables to build(add_library()/add_executable()/target_link_libraries())

9.      Tests to build(catkin_add_gtest())

10.  Install rules (install())

 

find_package()的工作机制

一个包被find_package,那么就会导致一些CMake变量的产生,从而去找到这个包,这些变量后面将在CMake的脚本中用到,这些变量描述了所依赖的包输出的头文件、源文件、库文件在哪里。和包所依赖的库,

这些变量的名字依照的惯例是<PACKAGENAME>_<PROPERTY>,比如:

<NAME>_FOUND:这个变量说明这个库是否被找到,如果找到就被设置为true,否则设为false;

<NAME>_INCLUDE_DIRSor<NAME>_INCLUDES:这个包输出的头文件目录;

<NAME>_LIBRARIES or <NAME>_LIBS:这个包输出的库文件。

需要的所有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值