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。

 

posted @   天天2023  阅读(509)  评论(2编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示