C++ - 使用CMake构建vs项目

1. CMake概述

CMake 是一个项目构建工具,并且是跨平台的。关于项目构建我们所熟知的还有Makefile(通过 make 命令进行项目的构建),大多是IDE软件都集成了make,比如:VS 的 nmake、linux 下的 GNU make、Qt 的 qmake等,如果自己动手写 makefile,会发现,makefile 通常依赖于当前的编译平台,而且编写 makefile 的工作量比较大,解决依赖关系时也容易出错。

而 CMake 恰好能解决上述问题, 其允许开发者指定整个工程的编译流程,在根据编译平台,自动生成本地化的Makefile和工程文件,最后用户只需make编译即可,所以可以把CMake看成一款自动生成 Makefile的工具,其编译流程如下图:

蓝色虚线表示使用makefile构建项目的过程
红色实线表示使用cmake构建项目的过程
介绍完CMake的作用之后,再来总结一下它的优点:

跨平台
能够管理大型项目
简化编译构建过程和编译过程
可扩展:可以为 cmake 编写特定功能的模块,扩充 cmake 功能

 

2. 下载安装CMake

官网下载链接:https://cmake.org/download/

选择 cmake-3.30.0-windows-x86_64.msi 进行下载

 

3. 使用CMake构建vs工程

1、首先创建CMake工程,创建一个叫demo的文件夹

2、在文件夹内分别创建EngineProjectThridPartybuild,和一个CMakeLists.txt文件,Engine放置引擎核心库,Project为相应的工程代码,ThridParty为外部第三方库

3、为了方便测试,在Project文件夹下准备了这么几个测试文件

add.c

#include <stdio.h>
#include "head.h"

int add(int a, int b)
{
    return a+b;
}

sub.c

#include <stdio.h>
#include "head.h"


int subtract(int a, int b)
{
    return a-b;
}

mult.c

#include <stdio.h>
#include "head.h"

int multiply(int a, int b)
{
    return a*b;
}

div.c

#include <stdio.h>
#include "head.h"

double divide(int a, int b)
{
    return (double)a/b;
}

head.h

#ifndef _HEAD_H
#define _HEAD_H
// 加法
int add(int a, int b);
// 减法
int subtract(int a, int b);
// 乘法
int multiply(int a, int b);
// 除法
double divide(int a, int b);
#endif

 main.c

#include <stdio.h>
#include "head.h"
//#include <iostream>


int main()
{
    int a = 20;
    int b = 12;
    printf("a = %d, b = %d\n", a, b);
    printf("a + b = %d\n", add(a, b));
    printf("a - b = %d\n", subtract(a, b));
    printf("a * b = %d\n", multiply(a, b));
    printf("a / b = %f\n", divide(a, b));
    system("pause");
    return 0;
}

4、在CMakeLists.txt文件中填入如下cmake命令

# “#”表示这行是注释
#设置CMake最低版本
cmake_minimum_required (VERSION 3.10.2)
#设置项目名称
project(demo)
#设置可执行文件,"demo"为可执行文件名称,"Project/main.cpp"为当前CMakeLists.txt文件的相对目录下的文件
add_executable(demo Project/head.h Project/add.c Project/div.c Project/main.c Project/mult.c Project/sub.c)

5、使用CMake GUI(可以搜索CMake找到),在Where is the source code:中,选择demo文件夹,由于该文件夹下有CMakeLists.txt文件,所以可以对该文件夹下的内容进行工程构建

6、在Where to build the binaries:中选择build文件夹作为构建后文件的存放位置(没有build文件夹可以自行创建)

7、点击下方的Generate按钮(也可以先点击Configure再点击Generate)

8、如果是第一次构建会弹出一个窗口,根据自己的情况选择使用Visual Studio 2013来构建工程,点击Finish

9、如无报错,构建完成后,打开build文件夹,可以看到已经生成了sln文件

10、双击demo.sln文件即可打开生成的vs工程

 

posted @ 2024-07-18 12:02  [BORUTO]  阅读(7)  评论(0编辑  收藏  举报