源码:https://github.com/panyingyun/cmakedemo

首次使用,单个文件

(1)建立cmakea工程目录

cmakea/
|-- build
|   |-- auto_build.bat
|   `-- auto_build_linux.sh
|-- cmakea.cpp
`-- CMakeLists.txt

其中,build 用于存放编译脚本和编译中间文件.cmakea.cpp是源文件,CMakeLists.txt是工程管理文件

cmakea.cpp 如下:

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

/**
 *calc sqrt(a) + sqrt(b)
**/
 
 static double addsqrt(double a , double b){
	 return sqrt(a)+sqrt(b);
 }
 
 
 int main( int argc, char *argv[]){
	if(argc < 3) {
		printf("Usage: input double a and  double b\n");
		return 1;
	}
 
	double a = atof(argv[1]);
	double b = atof(argv[2]);
	
	double c = addsqrt(a,b);
	
	printf("sqrt(%f) + sqrt(%f) = %f\n", a, b, c);
	return 0;
 }

CMakeLists.txt 如下:

cmake_minimum_required(VERSION 2.8)
 
PROJECT(cmakea)
  
add_executable(cmakea cmakea.cpp)

cmake_minimum_required 定义cmake最低版本号

PROJECT 定义工程名

add_executable 定义可执行文件和可执行文件的依赖。

(2) Linux下cmake使用

cmake ..  		 ##自行生成makefile

cmake --build .  ##编译程序,也可以用make来执行

./cmakea 2 8     ##运行可执行程序

截图如下:

Linux cmake截图

其自动生成的Makefile如下:

Linux cmake截图

总之,比起自行写Makefile要简单的多。

(3)windows下cmake使用

使用下面的命令,生成Visual Studio 2017 Win64工程,

cmake -G "Visual Studio 15 2017 Win64"  ..

此时可以使用Visual Studio 2017 Win64 打开cmake1.sln进行编译,也可以使用下面的命令行进行编译

编译Debug版本

cmake --build . --config Debug    

编译Release版本

cmake --build . --config Release

打开cmakea.sln 工程已经建立好。

Visual Studio 2017工程

目前,应该可以体会到CMake管理工程的方便了,那么我们再进行一些学习,管理更加复杂的工程看看。