首页
社区
课程
招聘
[原创]Windows 下的 Makefile 编写(三)推理规则
发表于: 2010-12-24 11:26 9311

[原创]Windows 下的 Makefile 编写(三)推理规则

2010-12-24 11:26
9311

Windows 下的 Makefile 编写(三)推理规则

作者:cntrump

推理规则是Makefile中自动化的核心功能之一,掌握了推理规则会让Makefile的编写更简单和更易维护。

推理规则

推理规则提供命令来更新目标并推理目标的依赖项。推理规则是用户自定义的或者是预定义的,预定义的推理规则可以被重新定义。

定义规则

.fromExt.toExt:

    commands
All:main.obj func.obj

    link $**

main.obj:main.cpp

    cl /c main.cpp

func.obj:func.cpp

    cl /c func.cpp
All:main.obj func.obj

    link $**

.cpp.obj:

    cl /c $<
F:\我的文章\hello>nmake

Microsoft (R) Program Maintenance Utility   Version 6.00.9782.0

Copyright (C) Microsoft Corp 1988-1998. All rights reserved.

 

        cl /c main.cpp

Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86

Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

 

main.cpp

        cl /c func.cpp

Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 12.00.8804 for 80x86

Copyright (C) Microsoft Corp 1984-1998. All rights reserved.

 

func.cpp

        link main.obj func.obj

Microsoft (R) Incremental Linker Version 6.00.8447

Copyright (C) Microsoft Corp 1992-1998. All rights reserved.
!message $(_NMAKE_VER)

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 8
支持
分享
最新回复 (9)
雪    币: 57
活跃值: (55)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
沙发
2010-12-24 13:46
0
雪    币: 270
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谢谢分享  。。
2010-12-24 15:06
0
雪    币: 231
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
不错,感谢分享。以前零零散散的学习一些关于MAKEFILE东西,不够全面。楼主共享精神可嘉。
2010-12-24 16:27
1
雪    币: 563
活跃值: (101)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
收下!!
2010-12-25 08:34
0
雪    币: 189
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
感谢楼猪分享了!先学习了!
2010-12-26 12:39
0
雪    币: 292
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
nice....
2010-12-26 20:52
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
谢谢楼主,下载收藏了.
2010-12-28 21:03
0
雪    币: 349
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
看了3篇你的文章,感觉挺有帮助,但是在我看来仅仅只是纯翻译,个人的理解加的太少。比如我想写个makefile,在命令行输入nmake时编译relase版,输入nmake debug=on的时候编译debug版本,就是没弄出来,后来GOOGLE搜索到csdn上的一篇文章才写出来。
NAME = varage

!CMDSWITCHES +D
!IF DEFINED(DEBUG)
!IF "$(DEBUG)" == "ON"
ML_FLAG = /c /coff /Zi
LINK_FLAG = /SUBSYSTEM:WINDOWS /MACHINE:IX86 /DEBUG /DEBUGTYPE:CV
!ENDIF
!ENDIF

ML_FLAG = /c /coff
LINK_FLAG = /SUBSYSTEM:WINDOWS /MACHINE:IX86

$(NAME).exe:$(NAME).obj
Link $(LINK_FLAG) $**

.asm.obj:
Ml $(ML_FLAG) $<


clean:
del *.obj
del *.pdb
del *.pch
del *.exp
2010-12-29 15:47
1
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
10
我在PDF中都带有附件的,一般大家都只看PDF本身的内容,容易把附件忽略了。
你没有看 pdf 文件中的附件,Makefile 要结合实际的例子才能理解。
2010-12-29 21:52
1
游客
登录 | 注册 方可回帖
返回
//