# cmake_minimum_required()
指定Cmake需要的最低版本
#指定Cmake最低需要3.0版
cmake_minimum_required(VERSION 3.0)
project()
指定功能包的名称
project(tect)
指定功能包的名称为 tect 。在此CMakeLists.txt文本下可以使用 ${PROJECT_NAME} 变量来引用当前功能包的名称。即在当前CMakeLists.txt文本下 ${PROJECT_NAME}=tect。
find_package()
添加当前工程所需的依赖包
#Catkin至少需要以下添加这个依赖包
find_package(catkin REQUIRED)
‘REQUIRED’可选关键字
声明此关键字表明一定要找到此包,如果没有找到此包就会停止整个CMAKE。
find_package(catkin REQUIRED)
表明必须找到 ‘catkin’包
‘COMPONENTS’可选关键字
查找的包中必须包含指定的组件,否准导致cmake停止
find_package(catkin REQUIRED COMPONENTS nodelet)
表明查找的’catkin’包中必须包含’nodelet’组件,否准导致cmake停止。也与以下的声明等价
find_package(catkin REQUIRED)
find_package(nodelet REQUIRED)
catkin_package()
catkin_package()是catkin提供的CMake宏,用于为catkin提供构建、生成pkg-config和CMake文件所需要的信息。参考 链接
有五个参数可选:
INCLUDE_DIRS - 声明给其它package的include路径
LIBRARIES - 声明给其它package的库
CATKIN_DEPENDS - 本包依赖的catkin package
DEPENDS - 本包依赖的非catkin package
CFG_EXTRAS - 其它配置参数
catkin_package(
INCLUDE_DIRS include
LIBRARIES ${PROJECT_NAME}
CATKIN_DEPENDS roscpp nodelet
DEPENDS eigen opencv)
add_dependencies()
当一个项目构建的时候,由于依赖关系的存在,所以被依赖的项目总是最先构建,这样就不会出现找不到库而报错。参考链接