可以跳过的前奏部分
cmake简介
cmake
是kitware公司以及一些开源开发者在开发几个工具套件(VTK)的过程中衍生品,最终形成体系,成为一个独立的开放源代码项目。项目的诞生时间是2001年。官方网站www.cmake.org.
cmake
的流行其实要归功于KDE4
的开发(似乎跟当年的svn
一样,KDE
将代码仓库从CVS
迁移到SVN
,同时证明了SVN
管理大型项目的可用性),在KDE
开发者使用了近10年autotools
之后,他们终于决定为KDE4
选择一个新的工程构建工具,其根本原因用KDE
开发者的话来说就是:只有少数几个”编译专家”能够掌握KDE
现在的构建体系(admin/Makefile.common)
,在经历了unsermake
,scons
以及cmake
的选型和尝试之后,KDE4
决定使用cmake
作为自己的构建系统。在迁移过程中,进展异常的顺利,并获得了cmake
开发者的支持。所以,目前的KDE4
开发版本已经完全使用cmake
来进行构建。像kdesvn
,rosegarden
等项目也开始使用cmake
,这也注定了cmake
必然会成为一个主流的构建体系。
LL: KDE是有点意思,得找个时间玩一下。
cmake的特点
开源,使用类BSD许可发布。http://cmake.org/HTML/Copyright.html
跨平台,并可生成native编译配置文件,在Linux/Unix平台,生成makefile,在苹果平台,可以生成xcode,在Windows平台,可以生成MSVC的工程文件。
能够管理大型项目,KDE4就是最好的证明。
简化编译构建过程和编译过程。Cmake的工具链非常
cmake
+make
。高效虑,按照
KDE
官方说法,CMake
构建KDE4
的kdelibs
要比使用autotools
来构建KDE3.5.6
的kdelibs
快40%,主要是因为Cmake
在工具链中没有libtool
。可扩展,可以为cmake编写特定功能的模块,扩充cmake功能。
cmake安装
yum install cmake
使用说明
基本命令
- 设置cmake版本最小值
cmake_minimum_required(VERSION 2.6)
- 设置项目名称
project(CMakeTest)
基本流程
- 设置所需的cmake最小版本
- 指定C交叉编译器,必须配置
- 或交叉编译器使用绝对地址
- 指定C++交叉编译器
- 设置项目名称
set(bin_name demo)
set(project_name demo)
project(${project_name})
- 设置编译选项
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wall")
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -ggdb3")
set( CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}")
ADD_DEFINITIONS(-g -Wall)
set(src_path ${CMAKE_CURRENT_SOURCE_DIR}/..)
- set(src_path /home/admin/project/src)
- 设置包含头文件路径
- 链接的库文件路径
- 设置链接的库文件
- cmake path
- make
- make install