当前位置: 首页 > news >正文

makefile入门与一些简易windows命令

今日学习内容:Makefile 入门、变量、重定向与 PowerShell 简单快捷键

一、Makefile 是什么

Makefile 用来自动管理编译过程。

原来我需要手动输入:

g++ -c info.cpp -o info.o
g++ -c util.cpp -o util.o
g++ -c main.cpp -o main.o
g++ info.o util.o main.o -o test.exe

使用 Makefile 后,在我的 Windows + MinGW 环境里,需要执行:

mingw32-make

它会根据 Makefile 里的规则自动编译。

注意:有些教程里写的是:

make

但在 Windows 的 MinGW 环境下,经常不是 make,而是:

mingw32-make

这是工具名字不同,不是 Makefile 写法不同。


二、Makefile 的基本格式

Makefile 的基本格式是:

目标文件: 依赖文件执行命令

例如:

main.o: main.cppg++ -c main.cpp -o main.o

含义是:

main.o 由 main.cpp 生成

如果 main.cpp 被修改过,mingw32-make 会重新执行下面的编译命令。

注意:执行命令前面必须是 Tab,不能是普通空格。


三、Makefile 的时间戳判断

Makefile 会比较文件修改时间。

规则大概是:

如果目标文件不存在,就执行命令
如果依赖文件比目标文件新,就执行命令
否则不执行

比如:

main.o: main.cppg++ -c main.cpp -o main.o

如果 main.cppmain.o 新,说明源码被改过,于是重新编译。

如果 main.o 已经比 main.cpp 新,说明不需要重复编译。


四、先生成 .o,再生成 .exe

C++ 工程里常见流程是:

.cpp -> .o -> .exe

例如:

g++ -c main.cpp -o main.o
g++ main.o -o test.exe

第一条命令:

g++ -c main.cpp -o main.o

意思是只编译,不链接,生成 main.o

第二条命令:

g++ main.o -o test.exe

意思是把 .o 文件链接成最终的 .exe 程序。

多文件项目里这样做的好处是:哪个 .cpp 改了,就只重新编译哪个 .cpp,不用每次全部重新编译。


五、Makefile 变量

Makefile 里可以定义变量:

project := test.exe
link := info.o util.o main.o

使用变量时,用:

$(变量名)

例如:

$(project): $(link)g++ $(link) -o $(project)

等价于:

test.exe: info.o util.o main.og++ info.o util.o main.o -o test.exe

这里的 $ 可以理解为:取出变量里的内容。

比如:

$(project)

就是取出:

test.exe
$(link)

就是取出:

info.o util.o main.o

六、一个简单 Makefile

project := test.exe
link := info.o util.o main.o$(project): $(link)g++ $(link) -o $(project)info.o: info.cppg++ -c info.cpp -o info.outil.o: util.cppg++ -c util.cpp -o util.omain.o: main.cppg++ -c main.cpp -o main.oclean:del *.o

执行:

mingw32-make

会编译生成 test.exe

执行:

mingw32-make clean

会执行:

del *.o

删除所有 .o 文件。

这里的:

*.o

表示所有以 .o 结尾的文件,比如:

main.o
info.o
util.o

七、Windows 里的重定向 >

> 是输出重定向。

它的作用是:把程序原本输出到终端的内容,写入文件。

例如:

.\test.exe > log.txt

意思是:

运行 test.exe
把输出写入 log.txt

如果 log.txt 已经存在,会覆盖原来的内容。

如果想追加内容,用:

.\test.exe >> log.txt

区别是:

>   覆盖写入
>>  追加写入

例如:

echo hello > a.txt
echo world >> a.txt

最后 a.txt 里面是:

hello
world

八、错误输出重定向

程序有两种常见输出:

stdout:正常输出
stderr:错误输出

把错误输出写入文件:

.\test.exe 2> error.txt

把正常输出和错误输出都写入同一个文件:

.\test.exe > log.txt 2>&1

简单理解:

> log.txt   把正常输出写入 log.txt
2>&1        把错误输出也合并进去

九、PowerShell 简单快捷键

上一条命令:

下一条命令:

自动补全:

Tab

比如输入:

cd Des

Tab,可能自动补全成:

cd .\Desktop\

按前缀搜索历史命令:

F8

比如输入:

g++

然后按 F8,它会找以前输入过的 g++ 开头的命令。

行首:

Home

行尾:

End

清屏:

cls

或者:

Ctrl + L

中断当前命令:

Ctrl + C

十、今日总结

今天主要学了:

1. Makefile 可以自动管理编译命令
2. Windows + MinGW 环境下,我需要用 mingw32-make,而不是 make
3. Makefile 会根据文件时间戳判断是否需要重新编译
4. C++ 工程常见流程是 .cpp -> .o -> .exe
5. Makefile 变量用 $(变量名) 取值
6. * 是通配符,比如 *.o 表示所有 .o 文件
7. > 可以把程序输出写入文件
8. >> 可以追加输出
9. PowerShell 里 Tab、F8、Home、End 都比较常用

目前入门阶段,先掌握最朴素的写法即可,不急着学更复杂的模式规则。

http://www.rkmt.cn/news/1544598.html

相关文章:

  • 北京瓷器玉石工艺品回收怎么选不踩坑?2026TOP5正规机构精准适配指南 - 深鉴新闻
  • Visium HD空间组学技术:从高分辨率捕获到单细胞空间图谱构建
  • 头歌大模型实验:从神经网络基础到智能体开发的完整实践指南
  • 2026年 浙江江浙沪家具运输/大件运输/设备运输/易碎品运输公司推荐榜:专业打木架与上门服务深度解析 - 品牌发掘
  • 逆变仿真全流程实战:从模型搭建到工程问题排查
  • ZigBee PRO网络配置实战:从ZPS编辑器到性能调优
  • 2026学生与家长该如何看待音乐留学机构?专访LBM国际艺术教育 - 资讯速览
  • 从零到银:一个非OI背景选手的ICPC逆袭之路
  • 如何将Windows电脑变成免费AirPlay接收器:Shairport4w终极指南
  • 昆明配眼镜怎么避坑?三个要点一次讲清 - 配眼镜新资讯
  • 深入解析 | IEEE1588 PTP协议:从原理到实战配置指南
  • Fluent Validation:.NET 输入验证的优雅解决方案与实战指南
  • Symphony Studio Eclipse:NXP DSP56720双核开发环境搭建与多核调试实战
  • 岩石爆破优化:从经验到科学的精细控制与工程实践
  • 郑州配眼镜避坑指南:三个常见问题与正确做法 - 配眼镜新资讯
  • CodeWarrior IDE 5.5项目管理与构建目标实战指南
  • 告别音乐平台切换烦恼:LX Music桌面版一站式聚合播放体验
  • 广州 5 家猫犬舍深度实测测评|岭南潮热环境购宠首选伴西西 - 同城宠物优选基地
  • 杭州配眼镜怎么避坑?三个关键判断 - 配眼镜新资讯
  • ZigBee ZCL开发实战:从核心原理到NXP平台应用指南
  • VCPToolBox:从工具调用到AI自主生存世界的架构革命
  • ZigBee ZCL协议开发实战:温控器与色彩控制集群详解
  • CodeWarrior IDE 5.7 控制台应用创建与高效源码编辑实战指南
  • 2026年6月盘点深圳低调实力派发型师:不靠营销,全靠回头客出圈 - 资讯速览
  • HS2-HF_Patch:3分钟搞定Honey Select 2完整汉化与功能增强
  • 从零搭建:基于AMEsim、Simulink与CarSim的整车液压系统联合仿真实践
  • JN516x嵌入式开发:异常处理与MicroMAC低功耗无线通信实战
  • 计算机Java毕设实战-基于 Spring Boot 的网络日志分享交流系统的设计与实现 基于 Spring Boot 的自媒体博客内容管理系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 5分钟快速上手:浏览器资源嗅探神器猫抓Cat-Catch完全攻略
  • 2026年纳米气凝胶毡一线头部大厂TOP5深度测评与选型指南 - 廊坊广华节能科技