欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

CMake初探

程序员文章站 2022-07-14 17:06:36
...

之前总提着跨平台,但却对Cmake这强大的工具没怎么使用过,第一次正儿八经使用,记录一下,打打基础。
一、CMake简介(来自互联网):

CMake 是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的 Makefile 或者 project 文件,CMake 并不直接建构出最终的软件,而是产生标准的建构档(如 Makefile 或 projects)。例如,在windows上执行cmake可以生成vc++工程,再unix下执行cmake可以生成makefile文件,之后分别用vs构建以及make就可以生成不同平台的二进制文件,是一个很强大的交叉编译工具。

二、从hello cmake讲使用方法

cmake project中的一个重要文件就是CMakeLists.txt,它有非常多的语法,最简单的如下:

cmake_minimum_required(VERSION 2.8.9)  表示需要的最低cmake版本
project (hello)                        工程名,可以随意
add_executable(hello hello.cpp)   指定编译一个可执行文件,hello是第一个参数,表示生成可执行文件的文件名(这个文件名也是任意的),第二个参数hello.cpp则用于指定源文件。

源文件:

#include <iostream>
using namespace std;
int main()
{
    cout<<"hello cmake"<<endl;
    return;
}

三、执行命令

mkdir build    //创建一个目录,生成的文件放在这里不至于污染源文件
cd build
cmake ..       //cmake的目标是我们写的CMakeLists.txt,所以指向上一层       

此时,如果是win则在build中便生成了vs的sln,如下图:

CMake初探

在vs中就可以打开工程了,然后在自行编译。

如果是unix,则会生成makefile文件,执行make,便可以生成可执行文件。 

四、多文件项目(单文件夹)

比如demo文件夹下有main.cpp、hello.cpp、hello.h,此时需要修改CMakeLists.txt,如下:

cmake_minimum_required(VERSION 2.8.9)  表示需要的最低cmake版本
project (hello)                        工程名,可以随意
add_executable(hello mian.cpp hello.cpp)  添加hello.cpp

五、总结

本文简单记录了cmake最原始最简单的使用方法,下次将要记录的是多文件夹情况下,cmake的使用。

相关标签: 跨平台开发