cmake的主要特点:
1.跨平台,并可生成 native 编译配置文件,在 Linux/Unix 平台,生成 makefile,在 苹果平台,可以生成 xcode,在 Windows 平台,可以生成 MSVC 的工程文件。
来源:https://www.cnblogs.com/hoojjack/p/3849537.html
CMakeLists.txt剖析
cmake_minimum_required命令
cmake_minimum_required (VERSION 2.6)
规定cmake程序的最低版本。这行命令是可选的,我们可以不写这句话,但在有些情况下,如果CMakeLists.txt文件中使用了一些高版本cmake特有的一些命令的时候,就需要加上这样一行,提醒用户升级到该版本之后再执行cmake。
project命令
project (CRNode)
指定项目的名称。
一个例子:
CMAKE_MINIMUM_REQUIRED(VERSION 2.6) #cmake最低版本需求,不加入此行会受到警告信息
PROJECT(HELLO) #项目名称
AUX_SOURCE_DIRECTORY(. SRC_LIST) #把当前目录(.)下所有源代码文件和头文件加入变量SRC_LIST
ADD_EXECUTABLE(hello_ceshi ${SRC_LIST}) #生成应用程序 hello_ceshi,定义了这个工程会生成一个文件名为hello的可执行文件,相关的源文件是SRC_LIST中定义的源文件列表, 本例中你也可以直接写成ADD_EXECUTABLE(hello main.c)。
一个CMakeLists.txt文件:
cmake_minimum_required(VERSION 2.8 FATAL_ERROR)
project(project_marking_cluster)
find_package(PCL 1.2 REQUIRED)------查找第三方库PCL 1.2,因为PCL 1.2是必须的
include_directories(${PCL_INCLUDE_DIRS}) ------指定需要使用的第三方库头文件目录
link_directories(${PCL_LIBRARY_DIRS})
add_definitions(${PCL_DEFINITIONS})
add_executable (project_marking_cluster project_marking_cluster.cpp)
target_link_libraries (project_marking_cluster ${PCL_LIBRARIES}) ------指定需要使用的第三方库库文件(目录)