…
Makefile
CMake
官方文档
CMake是一款跨平台编译系统生成器。例如可在Linux
上生成Makefile
,在Windows
上生成Visual Studio
工程等。目前也支持Ninja
和Xcode
。
CMake通常用于C/C++文件的编译,同时也支持其他语言。
CMake提供三种工具:
- CMake 生成编译系统。
- CTest 用于生成测试,反馈测试结果。
- CPack 打包程序,用于产生安装文件。
使用CMake需要有如下部分。
SourceTree 包含项目需要的Src文件。这个项目的编译系统和依赖项由CMake定义,CMake的入口文件为顶层的CMakeLists.txt
文件。
BuildTree 包含项目生成的输出文件。CMake将生成一个CMakeCache.txt
文件
CMake 命令行用法。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| cmake [<options>] <path-to-source> cmake [<options>] <path-to-existing-build> cmake [<options>] -S <path-to-source> -B <path-to-build>
cmake --build <dir> [<options>] [-- <build-tool-options>]
cmake --install <dir> [<options>]
cmake --open <dir>
cmake [{-D <var>=<value>}...] -P <cmake-script-file>
cmake -E <command> [<options>]
cmake --find-package [<options>]
cmake --help[-<topic>]
|
CMakeLists.txt
语法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
| # 设置最低版本 cmake_minimum_required(VERSION 3.4.1)
# 打印信息 MESSAGE(STATUS, "Content")
# 设置项目标题 PROJECT(demo)
# 设置头文件路径 INCLUDE_DIRECTORIES( include )
# 设置源文件路径 AUX_SOURCE_DIRECTORY(src DIR_SRCS)
# 设置环境变量 SET(demo ${DIR_SRCS} )
# 添加依赖库 TARGET_LINK_LIBRARIES(${PROJECT_NAME} m)
# 生成的文件 add_executable(demo demo.cpp) # 生成可执行文件 add_library(../bin/bin STATIC util.cpp) # 生成静态库 add_library(../bin/bin SHARED util.cpp) # 生成动态库或共享库
|
Make Install
./configure、make、make install 命令
1、./configure 是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GCC,它是个shell脚本。
2、make 是用来编译的,它从Makefile中读取指令,然后编译。
3、make install是用来安装的,它也从Makefile中读取指令,安装到指定的位置。