ros CMakeLists.txt template

6 篇文章 0 订阅

这里记录一个使用ros的CMakeLists.txt的模板,方便以后套用。

示例

cmake_minimum_required(VERSION 3.0.2)
project(rs_parse)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -O3")
 
find_package(catkin REQUIRED COMPONENTS
  roscpp
  rospy
  pcl_ros
  pcl_conversions
  std_msgs
  sensor_msgs
 )
 
catkin_package(
  INCLUDE_DIRS
  DEPENDS PCL
)
 
include_directories(
    include
    ${catkin_INCLUDE_DIRS}
    ${PCL_INCLUDE_DIRS}
)
 
link_directories(
    include
    ${PCL_LIBRARY_DIRS}
)
 
add_executable(rs_to_velodyne src/rs_to_velodyne.cpp)
add_dependencies(rs_to_velodyne ${catkin_EXPORTED_TARGETS})
target_link_libraries(rs_to_velodyne ${catkin_LIBRARIES} ${PCL_LIBRARIES} ${OpenCV_LIBRARIES})

## from another repo
install(TARGETS
		${PROJECT_NAME}_filter_nodelet
		${PROJECT_NAME}_multi_sensor_nodelet
		${PROJECT_NAME}_control_nodelet
		${PROJECT_NAME}_debug_nodelet
  		RUNTIME DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
  		LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION})

install(FILES nodelet.xml DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION})
install(DIRECTORY launch/release/
        DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/launch)
install(DIRECTORY config/filtering/
        DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/config/filtering)
install(DIRECTORY config/sensor/
        DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/config/sensor)
install(DIRECTORY rviz/ DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}/rviz)
ROS中,CMakeLists.txt文件是用于构建catkin工程的重要文件之一,它定义了工程的编译规则和依赖关系。下面是一个基本的CMakeLists.txt文件结构: ``` cmake_minimum_required(VERSION 2.8.3) project(my_project) ## Find catkin macros and libraries find_package(catkin REQUIRED COMPONENTS roscpp std_msgs ) ## Declare a catkin package catkin_package( CATKIN_DEPENDS roscpp std_msgs ) ## Build include_directories( ${catkin_INCLUDE_DIRS} ) add_executable(my_node src/my_node.cpp) target_link_libraries(my_node ${catkin_LIBRARIES}) ``` 其中,`cmake_minimum_required` 和 `project` 命令是必须的,用于指定CMake最低版本和工程名称。`find_package` 命令是用来查找ROS依赖的,`catkin_package` 命令是声明catkin工程的一些信息,如依赖项等。`include_directories` 命令用于指定头文件路径,`add_executable` 用于添加可执行文件,`target_link_libraries` 用于链接库。 除此之外,CMakeLists.txt文件还可以包含一些其他的命令,例如: - add_library:添加一个库文件 - add_dependencies:添加依赖项 - install:安装目标文件到指定目录 - catkin_add_gtest:添加gtest单元测试 - catkin_add_nosetests:添加nosetests单元测试 - catkin_python_setup:设置Python包 这些命令可以根据实际需要进行添加,以实现工程的编译和构建。需要注意的是,CMakeLists.txt 文件是通过层层递归调用来完成构建的,因此,所有的依赖项必须在CMakeLists.txt文件中明确声明,否则会出现编译错误。 总之,CMakeLists.txt文件是ROS工程构建中的重要组成部分,它定义了工程的编译规则和依赖关系,同时也可以包含一些与catkin相关的命令,方便管理ROS工程的编译和构建。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值