由浅入深CMake学习
CMake
- 当项目程序简单的时候可以通过手写Makefile来编译项目。但当项目复杂时,手动编写Makefile将不再现实。CMake的存在就是解决这种情况的。CMake并不直接建构出最终的软件,而是产生标准的建构文档。
上一篇【记:由浅入深Makefile学习】https://blog.csdn.net/sinat_31538869/article/details/105621087
Github代码:https://github.com/Lohnwave/CMake_Makefiles
一. 单源文件项目helloworld
以大家最熟悉的helloworld
为例,其项目tree
如下:
$ tree
.
├── CMakeLists.txt
└── hello.cpp
0 directories, 2 files
CMakeLists.txt
是CMake的必备
根目录下的CMakeLists.txt
内容如下:
# Version 1
cmake_minimum_required(VERSION "3.7.1") # CMake版本号要求
project("helloworld") # 项目
add_executable(${PROJECT_NAME} hello.cpp) # 指定生成目标
- 终端输入
$ cmake .
$ make
- 项目生成:
$ tree
.
├── CMakeCache.txt
├── CMakeFiles
│ ├── 3.10.2
│ │ ├── CMakeCCompiler.cmake
│ │ ├── CMakeCXXCompiler.cmake
│ │ ├── CMakeDetermineCompilerABI_C.bin
│ │ ├── CMakeDetermineCompilerABI_CXX.bin
│ │ ├── CMakeSystem.cmake
│ │ ├── CompilerIdC
│ │ │ ├── a.out
│ │ │ ├── CMakeCCompilerId.c
│ │ │ └── tmp
│ │ └── CompilerIdCXX
│ │ ├── a.out
│ │ ├── CMakeCXXCompilerId.cpp
│ │ └── tmp
│ ├── cmake.check_cache
│ ├── CMakeDirectoryInformation.c