简单编写Makefile与使用make工具

简单编写Makefile与使用make工具

在不使用make工具下对c文件的编译

gcc main.c -o out

gcc 《目标文件》 -o 《生成执行文件》

image-20241204152627958

image-20241221220403761

编译到执行文件的流程:预处理,编译,汇编,链接

  • 预处理:编译器对头文件或宏定义展开,或者条件编译的选择,处理得到 mian.c->main.i
  • 编译:将文件编译成汇编代码,mian.i->main.s
  • 汇编:将汇编文件编译成机器码,mian.s->main.o
  • 链接:直接将目标文件编译成可执行文件,./mian.o

编译main.c文件-->out.exe

生成out.exe可执行文件

执行out.exe

./out.exe

成功执行main编译结果

image-20241204153600587

PS:

在window下生成的可执行文件为后缀.exe文件

image-20241204145717432

windows:

mingw32-make  

Linux:

make

image-20241221220316672

工具路径:"D:\MinGW\bin\mingw32-make.exe"

**使用mingw32-make命令将会执行make工具,所以将mingw32-make.exe文件复制重命名为make.exe,就可以在window下通过make命令来使用make工具,也可以通过mingw32-make专业使用make工具。

window下make工具mingw32-make.exe

img

复制,重命名为make.exe,这样就能同时使用make命令和mingw32-make命令

img

在linux下生成的可执行文件为后缀.out文件

过程截图

imgimg

img

imgimgimg 它定义了一个名为hello的目标,这个目标依赖于main.c和message.c文件。当main.c和message.c文件发生变化时,gcc命令会被执行,生成一个名为hello的可执行文件。

linux删除文件命令rm -f:

window删除文件命令del hello.exe

构建

Make:

img定义了三个目标:hello、main.o和message.o。每个目标都有一个依赖文件和一个命令。

  • hello目标依赖于main.o和message.o文件。当main.o和message.o文件发生变化时,gcc命令会被执行,生成一个名为hello的可执行文件。
  • main.o目标依赖于main.c文件。当main.c文件发生变化时,gcc命令会被执行,生成一个名为main.o的目标文件。
  • message.o目标依赖于message.c文件。当message.c文件发生变化时,gcc命令会被执行,生成一个名为message.o的目标文件。

伪目标:clean: 原:make clean 新: mingw32-make clean

img

img

删除构建中间文件

常用的内置变量

  • $@:表示目标文件。
  • $^:表示所有的依赖文件。
  • $<:表示第一个依赖文件。

img

Cmake构建

需要gcc,g++工具链

posted @   沁拒离  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示