今天IDE已经满天飞了,功能也越来越强,对于程序员来说,这确实是好事,不言而喻可以提高工作效率。
但对于初学者来说,直接使用IDE或许并不是好事,原因是IDE为你做了很多事情,而你却并不了解。引侯捷的
一句话:“勿在浮沙筑高台”。下面就让我们看一下,如何在命令行进行程序的编译和链接。要知道,这可是IDE
的主要功能之一啊。
在Windows平台下,命令行的编译主要采用nmake,关于nmake的使用,MSDN中有很详细的说明,不过本文是
针对nmake初学者的,不讲那么复杂。
首先,要使用nmake,你必须为你的程序编写一个makefile文件来描述如果编译和链接你的程序。一个常见的
makefile文件如下:
!include <win32.mak>
all = hello.exe
objs = hello.obj draw.obj
.c.obj :
$(cc) $(cflags) $(cvars) $*.c
hello.exe : $(objs)
$(link) $(guiflags) -out:hello.exe $(guilibs) $(objs)
clean :
del *.obj
第一行的!include<win32.mak>,将引入一些常用的宏定义,如: $(cc) $(link)等。主要是方便使用。
makefile的格式为:要生成的东西 : 生成前面东西是需要的东西(呵呵,写得比较“通俗”啊)。比如下面
的语句:
hello.exe : $(objs)
表示,生成hello.exe 需要 $(objs),而$(objs)是什么呢?这就引出了makefile中的第二种定义方式:
名称 = 要代表的东西,比如 objs = hello.obj ,就表示 objs 代表的是hello.obj和draw.obj,以后
要引用objs,必须使用$(objs)这种方式,这样nmake才能识别。
下面着重介绍一下,win32.mak所引入的宏定义。(待续)