nmake. Day three

博客围绕makefile构建XRDP程序展开,介绍了makefile中注释规则,给出构建和调试XRDP程序的相关配置,包括复制、编译、链接等命令及参数,还说明了all、clean、rebuild等目标的执行内容,方便程序编译和调试。

听说上帝在make世界的过程中,他在星期天休息……我也只能在星期天休息……(谁知道上帝制造世界用了makefile没有?)

与昨天比较,看看多了什么东东
在以下的makefile中 "//"作为注释,不过在一个makefile中 是不能通过 "//" 来标记注释的。

#for build & debug XRDP program
#2005 08 04
#create by ZAP @kouton
#out file ./debug/xrdp.exe


CP     = copy # xcopy /r /i
MAKE = nmake
DEL     = del /q/f


EXE = ./debug/xrdp.exe

CPP = cl.exe
LINK32 = link.exe
#LINK32_FLAGS=/nologo /subsystem:console /incremental:no /out:"$(EXE)"  //subsystem:console 说明这是一个console程序
LINK32_FLAGS= /nologo /DEBUG /DEBUGTYPE:CV /subsystem:console /incremental:no /out:"$(EXE)" /pdb:"./debug/xrdp.pdb" //最后这里说明了 pdb 文件输出的位置 没有这个,visual studio就不能调试我们的程序了(比如 breakpoint)

CPP_PROJ = -nologo -MD -GX -Zi -Zp1 -GR -Fd -DWIN32 -DDEBUG -D_CONSOLE /Fr
#CPP_PROJ=/nologo /EHsc /MDd /W3 /G5 /Zi /Od -D_DEBUG -DWIN32 -DWIN32_LEAN_AND_MEAN -D_CONSOLE -D_MBCS $(INCLUDE_DIRS) /FD /c

HEADERS = rdp.h /
constant.h /
types.h

OBJS = xrdp.obj /
 rdp.obj

all : $(OBJS) //用过linux的朋友应该有点点映象 make all 就是执行这一段的内容 all: 就像c语言里面goto用的标号
 $(LINK32) $(LINK32_FLAGS) $(OBJS)

.PHONY : clean rebuild all  //这个告诉 nmake.exe clean rebuild all 这三个东西是三个“段” 避免和文件名冲突

clean : //当make clean的时候就执行这里的命令 删掉这些东西 用shell的del命令
 -$(DEL) $(EXE) $(OBJS) *.idb *.pdb ./debug/*.pdb
 
.cpp.obj::
   $(CPP) @<<
   $(CPP_PROJ) $<
<<

rebuild: clean all  //当make rebuild的时候 就先make clean 然后make all

//直接make的话 nmake 会找到最先出现的部分 也就是make all啦 我们就不用每次都打 nmake all  只要nmake 就可以编译了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值