1. cmake的作用
CMake主要是解决跨平台编译的问题。
CMake的用途是能通过一系列的源码和相关的配置来生成需要的编译器平台上的项目文件。
譬如,如果一个项目需要在Windows上用VS编译,在Linux上用make编译,在OS X上用XCODE,
那么按以前的做法是在整个项目文件里看三个目录,分别放置VS的sln文件,Linux的makefile,OS X的XCODE,
然后让不同需求的人到相应的目录用自己需要的工程文件(这看起来没有什么不好似乎)。
有了CMake以后,就不需要这三个目录了,只要有一个给CMake读的文件,然后CMake的UI上会需要用户选择目标平台,
这样CMake就会生成目标平台上的工程文件。举例,如果用户选的是VS2005平台,那么CMake就会在源代码目录下生成供VS2005使用的sln文件;
如果是make,就会生成makefile等等。
2. cmake安装
2.1 linux环境
- 下载地址
https://cmake.org/download/ - 编译安装
./bootstrap --prefix=/usr/local/cmake
make -j 6
make install
vim ~/.bashrc
alias cmake=/usr/local/xxxxx/cmake/bin/cmake
source ~/.bashrc
cmake -version
3. cmake使用CMakeList.txt
-
cmake最小版本号设置
cmake_minimum_required(VERSION 3.10) -
set the project name
project(Tutorial) -
add the executable 生成可执行文件
add_executable(Tutorial tutorial.cpp) -
set the project name and version
project(Tutorial VERSION 1.0) -
specify the C++ standard 设置使用的c++版本
set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True) -
设置链接时的库
target_link_libraries(Tutorial LIBS) -
设置编译器头文件搜索路径
include_directories ([AFTER|BEFORE] [SYSTEM] dir1 [dir2 ...])
以当前路径为相对路径
include_directories(sub) -
添加打印
get_property(dirs DIRECTORY ${CMAKE_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES)
message(">>> include_dirs=${dirs}")
运行:cmake ./
网友评论