Cmakelist.txt

1.重要性:Cmakelist.txt能否配置正确,影响到功能包能否被编译通过;

2.编译流程:CMake的的的的的的的的的的的的根据Cmakelist.txt配置文件编译生成的Makefile文件;再根据生成文件的配置文件编译...

3.所涉及的大部分配置文件:

 

 
cmake_minimum_required(VERSION 2.8.3)所需的最低的cmake的的的的的的的编译版本号
 
<strong>project(PROJECT_NAME)</strong>
<strong>指定项目名称,取与功能包名相同</strong>
<strong>find_package(catkin REQUIRED COMPONENTS 
               roscpp    
               rospy 
               std_msgs<span style="color:#3366ff"> </span></strong>
<strong><span style="color:#3366ff">               message_generation </span>
)<span style="color:#3366ff"> </span>
                </strong>
用于指出该包所需的依赖包,
编译后生成指向源文件,库
文件,头文件路径的CMake的的的的的的的
变量
add_message_files(...)
add_service_files(...)
add_action_files(...)
指出编译所需消息/服务/动作文件
generate_messages(...)
将消息/服务/动作生成对应的头文件,待程序中引用
catkin_package(
 ...
CATKIN_DEPENDS message_runtime ...
 ...)
指出所需依赖的信息(对内声明窗口)/也可用于导出依赖的库文件(对外声明窗口)
add_dependencies(add_executable_name $ {PROJECT_NAME} _generate_messages_cpp)
指出可执行程序目标文件依赖于消息/服务/动作生成的头文件
set_target_properties(add_executable_name
                      PROPERTIES OUTPUT_NAME add_executable PREFI“”)
由于目标文件名称必须唯一,这条指令可用于进行更改名称
set_target_properties(python_module_library
  PROPERTIES LIBRARY_OUTPUT_DIRECTORY $ {CATKIN_DEVEL_PREFIX} / $ {CATKIN_PACKAGE_PYTHON_DESTINATION})
用于更改目标文件的输出路径
include_directories(包括$ {Boost_INCLUDE_DIRS} $ {catkin_INCLUDE_DIRS})
指出头文件路径
add_executable(myProgram src / main.cpp src / some_file.cpp src / another_file.cpp)
指出生成可执行文件名,源文件路径
add_library($ {PROJECT_NAME} $ {$ {PROJECT_NAME} _SRCS})
生成共享库
target_link_libraries(<add_executable_Name>,<lib1>,<lib2>,... <libN>)
指出可执行文件链接于共享库

注:执行顺序

 

find_package(catkin REQUIRED COMPONENTS ...)
add_message_files(...)
add_service_files(...)
add_action_files(...)
generate_messages(...)
......
catkin_package(...)
 ......

 add_library()

 add_executable()

 ......

 target_link_libraries()

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值