• 怎么在Windows下使用Makefile文件


     【推荐阅读】

    virtio-net 实现机制【一】(图文并茂)

    浅析linux内核网络协议栈--linux bridge

    深度解析linux内核模块编译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.将下面各个文件保存在同一目录下:

    1. "src_a.c"
    2. #include "stdio.h"
    3. void funca()
    4. {
    5. printf("funca runing!!!\r\n");
    6. }
    7. "src_b.c"
    8. #include "stdio.h"
    9. void funcb()
    10. {
    11. printf("funcb runing!!!\r\n");
    12. }
    13. "src_c.c"
    14. #include "stdio.h"
    15. void funcc()
    16. {
    17. printf("funcc runing!!!\r\n");
    18. }
    19. "main.c"
    20. #include "stdio.h"
    21. extern void funca();
    22. extern void funcb();
    23. extern void funcc();
    24. int main()
    25. {
    26. funca();
    27. funcb();
    28. funcc();
    29. }
    30. "Makefile"
    31. mian : main.o src_a.o src_b.o src_c.o
    32. gcc main.o src_a.o src_b.o src_c.o -o main
    33. main.o : main.c
    34. gcc main.c -c -o main.o
    35. src_a.o : src_a.c
    36. gcc src_a.c -c -o src_a.o
    37. src_b.o : src_b.c
    38. gcc src_b.c -c -o src_b.o
    39. src_c.o : src_c.c
    40. gcc src_c.c -c -o src_c.o
    41. .PHONY : clean
    42. clean:
    43. 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文件。

  • 相关阅读:
    个人用户实现发送短信功能
    meta标签的妙用
    FireFox火狐浏览器电脑端安装到D盘
    使用 Clion (cmake) 开发FreeRTOS
    【STM32】时钟设置函数(寄存器版)
    uniapp 微信小程序 vue3.0+TS手写自定义封装步骤条(setup)
    hcip--复习第二天作业
    (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
    Module build failed (from ./node_modules/postcss-loader/src/index.js):
    追风者变引领者:Horwin的技术攀爬
  • 原文地址:https://blog.csdn.net/m0_74282605/article/details/128132452