- 创建一个HelloWorld目录
- 编写我们的HelloWorld.c
-
1 /* 2 * Filename : HelloWorld.c 3 * Description : a CMake HelloWorld demo 4 * Author : loop0day 5 * Created : 2018 Apr 04 04:27:27 PM 6 * Modified : 2018 Apr 04 04:30:29 PM 7 */ 8 9 #include <stdio.h> 10 11 /* main */ 12 int main(); 13 14 int 15 main() 16 { 17 if (printf("Hello World!\n") < 0) { 18 fprintf(stderr, "printf() failed!\n"); 19 return 1; 20 } 21 22 return 0; 23 }
- 在同一目录下编写CMakeLists.txt
-
1 # set the minimum required version cmake to build this project 2 cmake_minimum_required(VERSION 3.9) 3 4 # set project name 5 project(HelloWorld) 6 7 # define a executable target 8 add_executable(HelloWorld HelloWorld.c)
- 这里简单说一下, cmake_minimum_required是指定当前项目构建所需要的最小cmake版本, project是设置当前项目的名称, add_executable就是类似于Makefile中的target, 定义项目的最终可执行目标.
- 接下来就是构建项目的过程, cmake推荐外部构建, 就是在其他目录中进行构建, 产生构建过程的中间文件和最终可执行文件, 这样不会污染源代码文件, 这里我在当前目录下新建build目录, cd到build目录中, 执行 cmake .. , make , 没有错误的话就会在当前目录下产生一个HelloWorld可执行文件, ./HelloWorld 即可执行相应的输出.
-
这里和Makefile做一个对比, 我们并没有显式的指定CC编译器, 我们在执行 cmake .. 的时候可以发现, cmake自动为我们处理平台相关的编译器信息, 这也是cmake能做到跨平台构建的一部分原因.