CMakeLists入门学习

本文介绍了一个简单的rplidar ROS节点的cmake配置文件实例,详细解释了如何使用cmake_minimum_required、project、set等命令来定义ROS项目,并通过find_package和target_link_libraries等命令实现依赖管理和编译。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为需要编译,所以必须要掌握cmakelist语法,以我所用到的rplidar的cmakelist.txt举例

以下是一个简单的启动rplidar的rplidarNode的cmakelist文件

cmake_minimum_required(VERSION 2.8.3)
project(rplidar_ros)

这里会生成

${rplidar_ros_BINARY_DIR} :就是cmake要(构建)编译我们的项目(node.c)的具体路径。这里当然就是build。

${rplidar_ros_SOURCE_DIR} :就是我们项目的源码的具体路径,这里当然是项目的根目录。

 

set(RPLIDAR_SDK_PATH "./sdk/")

//set命令为设定该cmakelist文件中的变量值,可以理解为RPLIDAR_SDK_PATH=./sdk/

FILE(GLOB RPLIDAR_SDK_SRC
  "${RPLIDAR_SDK_PATH}/src/arch/linux/*.cpp"
  "${RPLIDAR_SDK_PATH}/src/hal/*.cpp"
  "${RPLIDAR_SDK_PATH}/src/*.cpp"
)

//file命令为

find_package(catkin REQUIRED COMPONENTS
  roscpp
  rosconsole
  sensor_msgs
)

//find_package命令为自动去系统中寻找所指定的包,相当于引用包吧

include_directories(
  ${RPLIDAR_SDK_PATH}/include
  ${RPLIDAR_SDK_PATH}/src
  ${catkin_INCLUDE_DIRS}
)

//include_directories命令为本包引用的文件夹目录,即添加头文件目录

catkin_package()

add_executable(rplidarNode src/node.cpp ${RPLIDAR_SDK_SRC})
target_link_libraries(rplidarNode ${catkin_LIBRARIES})

//添加要执行的编译命令,在这里翻译为通过借助RPLIDAR_SDK_SRC将src里的node.cpp源文件编译成为名叫rplidarNode的可执行文件。

add_executable(rplidarNodeClient src/client.cpp)
target_link_libraries(rplidarNodeClient ${catkin_LIBRARIES})

//这里同上只不过生成的是rplidarNodeClient

install(TARGETS rplidarNode rplidarNodeClient
  ARCHIVE DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
  LIBRARY DESTINATION ${CATKIN_PACKAGE_LIB_DESTINATION}
  RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
)

install(DIRECTORY launch rviz sdk
  DESTINATION ${CATKIN_PACKAGE_SHARE_DESTINATION}
  USE_SOURCE_PERMISSIONS
)

//install命令为将编译生成的文件分类安装到制定的目录路径。可分成好几类文件的安装命令

以上是我自己找的一个最基础的cmakelist文件,还有一些命令没有涉及,需要在之后的练习中慢慢去学习。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值