cmake学习02 - 第一个工程
源码: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 ##运行可执行程序
截图如下:
其自动生成的Makefile如下:
总之,比起自行写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 工程已经建立好。
目前,应该可以体会到CMake管理工程的方便了,那么我们再进行一些学习,管理更加复杂的工程看看。