简单编写Makefile与使用make工具
简单编写Makefile与使用make工具
在不使用make工具下对c文件的编译
gcc main.c -o out
gcc 《目标文件》 -o 《生成执行文件》
编译到执行文件的流程:预处理,编译,汇编,链接。
- 预处理:编译器对头文件或宏定义展开,或者条件编译的选择,处理得到 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编译结果
PS:
在window下生成的可执行文件为后缀.exe文件
windows:
mingw32-make
Linux:
make
工具路径:"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
复制,重命名为make.exe,这样就能同时使用make命令和mingw32-make命令
在linux下生成的可执行文件为后缀.out文件
过程截图
它定义了一个名为hello的目标,这个目标依赖于main.c和message.c文件。当main.c和message.c文件发生变化时,gcc命令会被执行,生成一个名为hello的可执行文件。
linux删除文件命令rm -f:
window删除文件命令del hello.exe
构建
Make:
定义了三个目标: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
删除构建中间文件
常用的内置变量
- $@:表示目标文件。
- $^:表示所有的依赖文件。
- $<:表示第一个依赖文件。
Cmake构建
需要gcc,g++工具链
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通