windows平台下makefile操作教程

makefile 一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,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编译)

为什么要区分电线的颜色?
戈埃尔传感器为各种不同的传感器产品合理的定制化防水透气散热解决方案
如何避免PCB设计时出现各种错误
中微爱芯恒流LED驱动控制电路AiP33620应用在植物灯,最大输出电流30mA
江苏首个5G防疫机器人投入使用 提升防疫检查工作效率
windows平台下makefile操作教程
简单的BP网络识别液晶字符
pcb板上锡不良怎么处理
数据中心变革三大重点
数据产生巨大“数据引力”,带来了边缘计算的需求
国内龙头电池片厂商积极扩产,三家光伏公司均以210大尺寸为主
OPPO R11前后2000万拍照更清晰,全国九城首发
三大运营商经营表现各异 通信行业格局即将生变
2017年手机销量排行榜上各大手机厂商的解析
基于安全多方计算协议实现私密深度学习模型
小米6plus什么时候上市?小米6plus最新消息:既生瑜何生亮,小米6Plus,再见!
空间光调制器LCOS-SLM的衍射效率
UCLA新型光学神经网络可立即识别物体
安森美半导体推出蓝牙5无线系统认证的单芯片
配网行波故障预警与定位装置的型号及其应用