Makefile文件详解一(怎么在Windows下使用Makefile文件)

article/2025/9/26 21:01:37

前言:如果熟悉在Linux开发的话,肯定知道Makefile文件的用处,它给我们带来很多的便利。在Linux系统下并不会像Windows那么多开发工具,在Windows下,只要在开发工具上点击一个按钮,就能将工程的所有源码进行编译运行。而在Linux下,工程源文件的编写往往是使用一个简单的编辑器(VIM),然后通过Makefile文件进行自动化编译。而我接下来想说的是,如何在Windows上如同Linux般使用Makefile文件进行编译。可能有人觉得没那个必要,因为Windows的开发工具数不胜数,随便一个都非常好用,不可否认,懂得利用开发工具开发是可大大提高开发效率。当然,接下我是从基础的知识出发,不仅仅是对Makefile文件的学习,从中还可帮你解开以往的一些疑惑,或者让你学习到一些新的有趣的知识。

1.搭建环境

1.gcc编译器下载,TDM-GCC,打开根据自己电脑的类型选择合适的程序,我的是win7/32bit,所以选择下载第一个:

2.下载完成后,以管理员方式打开安装程序,点击Create后:

3.选择相应的版本,点击Next,接下来会选择安装路径,自己随便选择一个不带中文的路径就行。

4.最后点击Install进行安装,安装完成后,可以在自己设置的安装路径下有这么一个文件夹“TDM-GCC-32”,接下来配置环境变量。打开控制面板 > 系统和安全  > 系统 >高级系统设置  > 环境变量:

添加系统变量,变量值是自己刚刚选择的安装路径,我安装在C盘,如下图:

找到变量Path,在后面加入 “;%GCC_PATH%\bin”,如图:

点击确定保存设置。

5.点击电脑桌面左下角,搜索cmd,以管理员身份打开cmd.exe,输入“gcc -v”:

得到如上输出可确认gcc编译器已正确安装,版本是5.1.0。

6.继续输入“mingw32-make -v”:

相对于Linux的make不同,这里是mingw32-make,在cmd里用cd命令切换在Makeflie文件所在目录,命令行输入mingw32-make回车运行,就行执行Makefile文件,进行自动化编译。

2.执行一个简单的Makefile文件:

1.将下面各个文件保存在同一目录下:

"src_a.c"
#include "stdio.h"
void funca()
{printf("funca runing!!!\r\n");
}"src_b.c"
#include "stdio.h"
void funcb()
{printf("funcb runing!!!\r\n");
}"src_c.c"
#include "stdio.h"
void funcc()
{printf("funcc runing!!!\r\n");
}"main.c"
#include "stdio.h"
extern void funca();
extern void funcb();
extern void funcc();
int main()
{funca();funcb();funcc();
}"Makefile"
mian : main.o  src_a.o src_b.o  src_c.ogcc main.o src_a.o src_b.o src_c.o -o mainmain.o : main.cgcc main.c -c -o main.osrc_a.o : src_a.cgcc src_a.c -c -o src_a.osrc_b.o : src_b.cgcc src_b.c -c -o src_b.osrc_c.o : src_c.cgcc src_c.c -c -o src_c.o.PHONY : clean
clean:del *.o main.exe -rf

Makefile可以暂时不用理解,这里只是一个简单通俗的例子。

所有文件创建完成如下:

2.打开cmd,切换到以上的目录,输入“mingw32-make”:

得到main.exe可执行文件,输入main.exe回车运行:

然后在资源管理器里查看Test目录会发现多了一些编译的过程文件(.o):

cmd输入命令“”mingw32-make clean”,将输出文件删除:

到此,我可以在Windows下利用CMD命令通过Makefile对源文件进行编译运行了。

环境搭建好了之后,再从学习gcc命令开始,才能逐步理解Makefile文件。

 

 

推荐阅读:Makefile文件详解一(gcc命令参数详解)

 

 


http://chatgpt.dhexx.cn/article/6uiOq4IV.shtml

相关文章

makefile文件编写

makefile文件用于管理和组织代码工程的编译和链接,其不是可执行文件,其被make工具解析并完成相关动作,下面笔者将介绍makefile中常用的一些语法说明: 1、文件包含: 语法:include 文件名 作用:…

make中makefile文件的创建和使用

Makefile文件就是一种定义规则的文件,规则不同但格式基本相同,如图 一个makefile中有多个规则,但最终形成一个makefile文件,且只有一个终极目标,第一行就是终极目标。 格式: 1.目标文件:(如mai…

【Linux基础】如何编写Makefile文件?

文章目录 前言一、make工具简介1.什么是make?2.如何安装make? 二、编写Makefile文件1.文件组成2.工作原理3.Makefile文件优点4.单级目录下的Makefile文件编写5.多级目录下的Makefile文件编写 总结 前言 我们刚开始在Linux系统下进行编程时,采用的编译方法为&#…

从0开始教你编写Makefile文件

目录 编写Makefile第一步,了解什么是Makefile? 编写Makefile第二步,明白编译链接过程 编写Makefile第三步,实现简单的Makefile(生成单个可执行文件) 解释一下一个简简单单的make都干了什么? 编写Makefile第四步&am…

C语言makefile文件

文章目录 一、makefile的编写二、make命令三、makefile文件中的变量四、应用经验五、课后作业六、版权声明 在软件的工程中的源文件是很多的,其按照类型、功能、模块分别放在若干个目录和文件中,哪些文件需要编译,那些文件需要后编译&#xf…

【Linux】Makefile文件

1.Makefile的作用 Makefile文件定义了一系列的规则来指定哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,可以实现自动化编译,一旦写好,只需要一个make命令,整个工程完全自动编译&#xff0…

计算一幅图像的信噪比

计算一幅图像的信噪比 适用情况计算步骤附matlab代码example计算结果计算峰值信噪比 大家好,这是我两年前写的一篇博客修正版本,本来打算删掉了,但是阅读量很多,可能对大家会有一点小小的帮助,就重新放上来吧。 适用情…

两种常用的全参考图像质量评价指标——峰值信噪比(PSNR)和结构相似性(SSIM)

原文:https://blog.csdn.net/zjyruobing/article/details/49908979 1.PSNR(Peak Signal to Noise Ratio)峰值信噪比: MSE表示当前图像X和参考图像Y的均方误差(Mean Square Error),H、W分别为图…

图像信噪比的理解

图像的信噪比和图像的清晰度一样,都是衡量图像质量高低的重要指标。图像的信噪比是指视频信号的大小与噪波信号大小的比值,其公式为: S/N(信噪比) 20 log (信号/噪声)dB信噪比大,图像画面就干净&#xff0…

相机的信噪比

在图像传感器的成像过程中,真实的信号是无法探测到的理想值。在成像过程中理想值被引入了一系列的不确定性,最终形成读出信号也即图像。此过程中的不确定性被统一称为噪声。而信号与噪声的比值被定义为信噪比(Signal-to-NoiseRatio, SNR&…

信噪比(SNR)

信噪比(Signal-to-noise ratio,缩写为 SNR 或 S/N),也称作信杂比或讯杂比。 信噪比,为有用信号功率(Power of Signal)与噪声功率(Power of Noise)的比。因此为幅度(Amplitude)比的平方&#xff…

信干噪比、信噪比

信干噪比 名词定义 信干噪比SINR(Signal to Interference plus Noise Ratio),指的是系统中信号与干扰和噪声之和的比。 信号是指来自设备外部需要通过设备进行处理的电子信号。 干扰是指系统本身以及异系统带来的干扰,如同频干扰…

图像的峰值信噪比(peak signal to noise ratio, PSNR)

峰值信噪比(PSNR)是一个表示信号最大可能功率和影响它的表示精度的破坏性噪声功率的比值的工程术语。由于许多信号都有非常宽的动态范围,峰值信噪比常用对数分贝单位来表示。 在图像处理中,要对图像进行客观的评价,常…

图像处理随笔之峰值信噪比(peak signal to noise ratio)

图像处理随笔之峰值信噪比(peak signal to noise ratio) the definition from WIKI:an engineering term for the ratio between the maximum power of a signal and the power of corrupting noise that affects the fidelity of its repre…

python求不同分辨率图像的峰值信噪比,一文搞懂

可以使用 Python 的 NumPy 和 OpenCV 库来实现这个任务。提前准备一张图片作为素材。 文章目录 什么是峰值信噪比PSNR 峰值信噪比补充说明 使用 OpenCV 库来实现这个任务PSNR 的计算值受图像的亮度影响计算不同分辨率图像的 PSNRpython 求不同分辨率图像的峰值信噪比 | 其他知识…

【深度学习】图像去雾,去噪里常用的相似评价指标:PSNR(峰值信噪比) SSIM(结构相似度)MSE(均方误差)

文章目录 一、PSNR(峰值信噪比)二、SSIM(结构相似度)三、MSE(均方误差)小插曲:plt.savefig()保存的图片为空白 一、PSNR(峰值信噪比) 公式直接抄我…

信噪比

fft原理 能量谱 (5)能量信号频谱通常既含有幅度也含有相位信息;幅度谱的平方(二次量纲)又叫能量谱(密度),它描述了信号能量的频域分布;功率信号的功率谱(密…

PSNR峰值信噪比matlab实现

PSNR,峰值信噪比,通常用来评价一幅图像压缩后和原图像相比质量的好坏,当然,压缩后图像一定会比原图像质量差的,所以就用这样一个评价指标来规定标准了。PSNR越高,压缩后失真越小。这里主要定义了两个值&…

psnr--峰值信噪比

psnr是“Peak Signal to Noise Ratio”的缩写,即峰值信噪比,是一种评价图像的客观标准,它具有局限性,一般是用于最大值信号和背景噪音之间的一个工程项目。 中文名 PSNR 外文名 Peak Signal to Noise Ratio” 意 义 峰值…

信噪比的定义及计算方法

1.信噪比的定义 英文名称叫做SNR或S/N(SIGNAL-NOISE RATIO),又称为讯噪比。是指一个电子设备或者电子系统中信号与噪声的比例。这里面的信号指的是来自设备外部需要通过这台设备进行处理的电子信号,噪声是指经过该设备后产生的原信号中并不存…