读书人

makefile的语法及写法,该如何处理

发布时间: 2012-02-09 18:22:27 作者: rapoo

makefile的语法及写法
#0001 # filename : hello.mak
#0002 # make file for hello.exe (MFC 4.0 Application)
#0003 # usage : nmake hello.mak (Visual C++ 5.0)
#0004
#0005 Hello.exe : StdAfx.obj Hello.obj Hello.res
#0006 link.exe /nologo /subsystem:windows /incremental:no \
#0007 /machine:I386 /out: "Hello.exe " \
#0008 Hello.obj StdAfx.obj Hello.res \
#0009 msvcrt.lib kernel32.lib user32.lib gdi32.lib mfc42.lib
#0010
#0011 StdAfx.obj : StdAfx.cpp StdAfx.h
#0012 cl.exe /nologo /MD /W3 /GX /O2 /D "WIN32 " /D "NDEBUG " /D "_WINDOWS " \
#0013 /D "_AFXDLL " /D "_MBCS " /Fp "Hello.pch " /Yc "stdafx.h " \
#0014 /c StdAfx.cpp
#0015
#0016 Hello.obj : Hello.cpp Hello.h StdAfx.h
#0017 cl.exe /nologo /MD /W3 /GX /O2 /D "WIN32 " /D "NDEBUG " /D "_WINDOWS " \
#0018 /D "_AFXDLL " /D "_MBCS " /Fp "Hello.pch " /Yu "stdafx.h " \
#0019 /c Hello.cpp
#0020
#0021 Hello.res : Hello.rc Hello.ico jjhour.ico
#0022 rc.exe /l 0x404 /Fo "Hello.res " /D "NDEBUG " /D "_AFXDLL " Hello.rc
这个是一个makefile文件,他的语法是什么,它的意义及写法??在这个makefile中前三行是什么意思??

[解决办法]
这些都是自动生成的,还要自己写吗?
[解决办法]
简单解释下
1行到4行是是注释部分

重点是下面的,以如下代码为例
#0005 Hello.exe : StdAfx.obj Hello.obj Hello.res
#0006 link.exe /nologo /subsystem:windows /incremental:no \
#0007 /machine:I386 /out: "Hello.exe " \
#0008 Hello.obj StdAfx.obj Hello.res \
#0009 msvcrt.lib kernel32.lib user32.lib gdi32.lib mfc42.lib

05行用中文解释是:生成的文件Hello.exe依赖于StdAfx.obj Hello.obj Hello.res,一旦发现以上文件被修改则需要重新编译Hello.exe,否则跳过
从06行开始,是编译Hello.exe需要执行的编译器代码,这个你自己参看以下Link的说明吧。

下面的几块根这个很类似,就不再重复说了。

说凭有限,说错了不要见怪

[解决办法]
mark
[解决办法]
谢谢

[解决办法]
就是比较冒号俩边的文件更新时间,如果右边的任意文件比左边的更新时间新,就执行下一行指定的操作

读书人网 >VC/MFC

热点推荐