win10系统中基于CMake+MinGW构建C++工程项目

引言:在Windows系统中,经常以CMake和MinGW来构建C++工程项目,而代码编辑器可以自由选择,如果不用大型IDE(如Visual Studio,CLion)的话,可以选择一些小巧好用的编辑器(如VS Code, Sublime Text, Atom等)。下面将以一个温度转换程序为例,一步步说明CMake构建工程的流程。

1. 在开始之前,请确保CMake和MinGW已经安装完成,如果没安装,可以按照下面链接进行安装

(1)CMake安装教程 --> CMake

(2)MinGW安装教程 --> MinGW

2. 构建流程

如图1所示,CMake的整个构建流程简单清晰明了,其中,CMake主要是通过CMakeLists.txt配置文件指定要编译的源文件,工程项目的配置等。可以说,使用CMake就要掌握CMakeLists.txt文件的编写。之后分两步完成,首先根据源文件生成Makefiles,然后利用Makefiles编译得到可执行的目标程序。

图 1 CMake 构建工程流程

3. 工程项目结构:main.cpp是程序入口,build文件夹用于存放编译后产生的文件,include文件夹存放头文件,源文件存放于src文件夹中

\ConvertTemp
|     main.cpp

|     CMakeLists.txt
|
+---build
+---include
|        utils.h
|
\---src
        utils.cpp

 4. 实践出真知

4.1 声明转换函数:用你最喜欢的代码编辑器打开utils.h头文件,声明转换函数

/*华氏温度转为摄氏温度*/
float fahrenheitToCentigrade(float fahrenheit);

/*摄氏温度转为华氏温度*/
float centigradeToFahrenheit(float centigrade);

/*摄氏温度转为开尔文温度*/
float centigradeToKelvin(float centigrade);

4.2 实现转换函数:在utils.cpp文件实现utils.h中声明的函数

#include "../include/utils.h"

/*华氏温度转为摄氏温度*/
float fahrenheitToCentigrade(float fahrenheit){
	return (fahrenheit-32) * (5.0/9.0);
}

/*摄氏温度转为华氏温度*/
float centigradeToFahrenheit(float centigrade){
	return centigrade * (9.0/5.0) + 32;
}

/*摄氏温度转为开尔文温度*/
float centigradeToKelvin(float centigrade){
	return centigrade + 273.15;
}

4.3 编写main.cpp

#include <iostream>
#include "include/utils.h"
using namespace std;

int main(int argc, char const *argv[])
{
	float fTemp=0;
	float cTemp=0;
	float kTemp=0;
	cout << "cTemp\t\t" << "fTemp\t\t" << "kTemp" << endl;
	for (int i = 0; i < 100; i+=13)
	{
		cTemp = (float)i;
		fTemp = centigradeToFahrenheit(cTemp);
		kTemp = centigradeToKelvin(cTemp);

		cout << cTemp << "\t\t" << fTemp << "\t\t" << kTemp << endl;
	}
	return 0;
}

4.4 编写CMakeLists.txt,一般简单的工程,下面的配置就足够了

# 设置支持的最低CMake版本号
cmake_minimum_required(VERSION 3.10)

# 设置工程项目名称
project(ConvertTemp)

# 指定源文件
add_executable(ConvertTemp main.cpp src/utils.cpp)

4.5 到这里代码已经完成,下面用命令行编译运行源代码

(1)打开power shell,进入到当前工程目录下,如果还没有build目录则创建一个,主要用于存放编译后产生的文件,然后依次执行下列命令

cd build
cmake -G "MinGW Makefiles" ..
cmake --build .

(2)如果报错,则修改后重复(1),直到正确运行,至此,可执行目标文件已经得到,运行该文件

 .\ConvertTemp.exe

结果如下:

cTemp           fTemp           kTemp
0               32              273.15
13              55.4            286.15
26              78.8            299.15
39              102.2           312.15
52              125.6           325.15
65              149             338.15
78              172.4           351.15
91              195.8           364.15

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值