nmake智能扫描
nmake自己支持很智能的自动扫描,只需要写:
main.exe: *.c resource.RES @$(MAKE) $(**:.c=.obj) link $(**:.c=.obj) /OUT:$@
就大功告成!
其中$**的意思是依赖项,$@是生成目标;$(**:.c=.obj)是文本替换,把.c后缀换成.obj。如果是resource.RES的话它不会做任何替换。
nmake会自动把所有.c编译成.obj,有内置的功能!
注意这里我用了一个循环make的技巧。如果不用呢?不行,必须得用。
main.exe: *.obj resource.RES link $** /OUT:$@
也可以编译,但是问题就是编译一次之后,你添加了一个新的.c文件,这个新的.c不会被继续编译。
因为最开始的时候目录下面没有.obj文件,所以你*.obj是可以的,make会知道把所有.c编译成.obj。
但是,第二次的时候,目录下面有第一次编译的那些.obj,*.obj就只是以前的那些了。你新的.c不会被继续编译。
所以这里才要用循环make,这样每次都会看所有*.c。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?