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

前言:如果熟悉在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.o
	gcc main.o src_a.o src_b.o src_c.o -o main

main.o : main.c
	gcc main.c -c -o main.o

src_a.o : src_a.c
	gcc src_a.c -c -o src_a.o

src_b.o : src_b.c
	gcc src_b.c -c -o src_b.o

src_c.o : src_c.c
	gcc 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命令参数详解)

 

 

  • 32
    点赞
  • 144
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
好的,下面是关于 makefile使用详解makefile 是一个命令脚本文件,通常用于编译和链接程序。它可以告诉编译器如何编译源文件、如何链接库文件,以及如何生成可执行文件makefile 通常由多个规则组成,每个规则描述了一组文件之间的依赖关系和生成方式。 下面是一个简单的 makefile 示例: ``` CC = gcc CFLAGS = -Wall -g main: main.o func1.o func2.o $(CC) $(CFLAGS) -o main main.o func1.o func2.o main.o: main.c $(CC) $(CFLAGS) -c main.c func1.o: func1.c $(CC) $(CFLAGS) -c func1.c func2.o: func2.c $(CC) $(CFLAGS) -c func2.c clean: rm -f *.o main ``` 上面的 makefile 包含了 5 条规则: - `main` 规则:生成可执行文件 main,依赖于 main.o、func1.o 和 func2.o 三个文件。 - `main.o` 规则:生成 main.o 目标文件,依赖于 main.c 源文件。 - `func1.o` 规则:生成 func1.o 目标文件,依赖于 func1.c 源文件。 - `func2.o` 规则:生成 func2.o 目标文件,依赖于 func2.c 源文件。 - `clean` 规则:删除所有目标文件和可执行文件。 通过执行 `make` 命令,可以根据 makefile 中的规则来生成目标文件和可执行文件。例如,执行 `make main` 命令会生成可执行文件 main,执行 `make clean` 命令会删除所有目标文件和可执行文件。 除了上述示例中的规则外,makefile 还支持很多其他的语法和命令,包括变量、条件语句、循环语句等。如果您需要更深入地了解 makefile使用方法和技巧,可以参考相关的教程和文档。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值