一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能 *** 作,因为 makefile就像一个Shell脚本一样,其中也可以执行 *** 作系统的命令。
makefile定义
Linux 环境下的程序员如果不会使用GNU make来构建和管理自己的工程,应该不能算是一个合格的专业程序员,至少不能称得上是 Unix程序员。在 Linux(unix )环境下使用GNU 的make工具能够比较容易的构建一个属于你自己的工程,整个工程的编译只需要一个命令就可以完成编译、连接以至于最后的执行。不过这需要我们投入一些时间去完成一个或者多个称之为Makefile 文件的编写。
所要完成的Makefile 文件描述了整个工程的编译、连接等规则。其中包括:工程中的哪些源文件需要编译以及如何编译、需要创建那些库文件以及如何创建这些库文件、如何最后产生我们想要的可执行文件。尽管看起来可能是很复杂的事情,但是为工程编写Makefile 的好处是能够使用一行命令来完成“自动化编译”,一旦提供一个(通常对于一个工程来说会是多个)正确的 Makefile。编译整个工程你所要做的唯一的一件事就是在shell 提示符下输入make命令。整个工程完全自动编译,极大提高了效率。
make是一个命令工具,它解释Makefile 中的指令(应该说是规则)。在Makefile文件中描述了整个工程所有文件的编译顺序、编译规则。Makefile 有自己的书写格式、关键字、函数。像C 语言有自己的格式、关键字和函数一样。而且在Makefile 中可以使用系统shell所提供的任何命令来完成想要的工作。Makefile(在其它的系统上可能是另外的文件名)在绝大多数的IDE 开发环境中都在使用,已经成为一种工程的编译方法。
windows平台下makefile *** 作教程Happy TImeWindows系统下如何使用makefile
makefile在windows之外的系统中广泛使用,大多数程序员依赖于vs的IDE; 掌握使用makefile,对于自动化构建很有用
vs使用nmake.exe作为构建的工具,有别于linux的make
nmake.exe在vs的安装目录下,
vs2005的默认目录是:C:\Program Files\Microsoft Visual Studio 8\VC\bin 或者 C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin (通常两个目录下文件为同一个)
vs2003的默认目录是:C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\bin 或者 C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin
打开DOS窗口,输入nmake,可能会出现如下错误提示:
这是因为在vs的安装过程中,没有注册vs的环境变量,可以通过如下方法查看自己是否已经注册好vs的环境变量:
在DOS窗口中输入set path, 则会看到如下提示:
我这边已经注册好环境变量了,如果你没有看到,可以将vs的bin目录添加到系统环境目录的path里
重新打开DOS窗口,输入nmake,如果提示如下,则说明环境目录注册成功:
这时,可以开始我们的编译了,打开DOS窗口,导航到源代码目录,执行nmake,注意nmake对应的编译为makefile(无后缀名)
如果你系统里面有好几个vs版本,建议不要将环境变量添加到path里,我的做法是这样的:
1,在C:\下面新建目录uTIls,并将该目录添加到path的环境变量中
2, 将vs2005的bin目录下的vcvars32.bat和vs2003的vcvars32.bat分别copy到C:\UTIls目录下,重命名为vc8.bat和vc7.bat
3,执行nmake前先执行vc7.bat(使用vs2003编译)或者vc8.bat(使用vS2005编译)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)