<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/46860.html" frameborder="0" width="468" scrolling="no" height="60"></iframe>
在一般的推理规则下,把 5 个 .cpp 文件编译为 5 个 .obj 文件需要调用 5 次 cl.exe,而 Microsoft nmake 支持 batch mode (批模式) 推理规则,只需调用一次 cl.exe 就能编译出这 5 个 .obj 文件,加快编译速度。
举例来说,有如下 Makefile:
# start of Makefile
all: foo1.obj foo2.obj foo3.obj foo4.obj
.cpp.obj:
cl /nologo /c $
# end of Makefile
那么执行 nmake 得到的输出是
Microsoft (R) Program Maintenance Utility Version 8.00.50727.762
Copyright (C) Microsoft Corporation. All rights reserved.
cl /nologo /c foo1.cpp
foo1.cpp
cl /nologo /c foo2.cpp
foo2.cpp
cl /nologo /c foo3.cpp
foo3.cpp
cl /nologo /c foo4.cpp
foo4.cpp
可见期间调用了 4 次 CL。如果把上述 Makefile 中的“.cpp.obj:”替换为“.cpp.obj::”,注意多了一个冒号,再调用 nmake 得到的输出是
Microsoft (R) Program Maintenance Utility Version 8.00.50727.762
Copyright (C) Microsoft Corporation. All rights reserved.
cl /nologo /c foo1.cpp foo2.cpp foo3.cpp foo4.cpp
foo1.cpp
foo2.cpp
foo3.cpp
foo4.cpp
Generating Code...
可见这样一次就把 4 个文件都编译出来了。只要多加一个冒号,就能节省反复启动编译器的时间,加快编译速度。
在预定义的规则中,nmake 是开启批模式的,可以用命令行参数 /Y 来禁用它。
http://msdn2.microsoft.com/zh-cn/library/f2x0zs74(VS.80).aspx(批模式规则)
http://msdn2.microsoft.com/zh-cn/library/cx06ysxh(VS.80).aspx(预定义的规则)
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1543250
分享到:
相关推荐
非网上命令行 nmake编译 一个解决方案,4个分项目 4各项目 各个项目下有具体说明 libcrypto项目 生成libcrypto.lib 第一个编译 libssl项目 生成libssl 需要上面的生成的libcrypto.lib 这两个项目修改项目属性为静态...
GNU libiconv-1.15和libintl-0.19.8.1,VS2015工程和 Makefile 命令行编译文件 CSDN-tags: libiconv1.15 libintl 0.19.8.1 VS2015 Makefile 声明: 代码为本人良心制作,虽然花费了一定的时间和精力,但不保证...
1.使用VS2008自带nmake编译libevent-2.0.11-stable (1)修改event_iocp.c、evthread_win32.c、listener.c三个文件,在文件开头分别加上一行: #define _WIN32_WINNT 0x0500 (2)打开Visual Studio 2008 命令提示 ...
GNU libiconv-1.15和libintl-0.19.8.1,VS2017工程和 Makefile.mak 命令行编译文件 CSDN-tags: libiconv1.15 libintl-0.19.8.1 VS2017 SDK17134.12 声明: 最新版,修正了relocatable.c文件中GetModuleFileName...
win32 下的 make工具,利用makefile文件,如果没安装vs ,可以下载这个工具使用
用于编程(C语言,汇编语言的智能批处理文件)的,罗云斌书也提到的。
可以在下用nmake make编译文件的环境设置 不过前提要安装VC6.0要用默认安装哟! 先用cmd进入文件目录后1.bat就可以有相应的nmake环境了!你就可以namke XXX.MAK 是按侯哥的深入浅出做的!
学习windows下汇编程序设计语言用到的工作环境nmake文件。 用法:nmake /f makefile
nmake 介绍文件
NMake参考手册,介绍NMake编译
只编译了liblber和libldap二个部分。 代码参考了https://github.com/winlibs/openldap中源码。但是,该源码中的工程文件中,预处理器的宏定义有错,不能正确生成dll版本。因此,我精简了该源码,并校正了其中的宏...
使用方式二make很可能会出现错误,不能编译,找了很多原因,有高人介绍了解决办法,就是下载一个叫dmake的工具,解压缩,将里面的dmake.exe和startup的文件夹(好象是这个名字)一起复制到c:\dev-cpp\bin 里(因为这个目录...
The nmake that comes with Visual C++ will suffice for building. You will need to run the VCVARS32.BAT file, usually found somewhere like C:\Program Files\Microsoft Visual Studio\VC98\Bin. This will ...
nmake.exe文件下载............................
NMAKE.EXE是Microsoft 程序维护实用工具,它是一个基于说明文件中包含的命令生成项目的工具。
苦于网上VC++6.0的各种版本非常之多,却没有一个纯编译器版本(主要用来编译下载的VC6源码),因此专门研究制作。 (lauey出品,CSDN首发,2009-07-07) 使用方法: 把下载的文件解压到C盘根目录下,进入命令提示...
curl-7.34.0\winbuild>nmake /f Makefile.vc mode=static VC=9 EN ABLE_SSPI=no ENABLE_IPV6=no ENABLE_IDN=no GEN_PDB=yes DEBUG=yes MACHINE=x86 2, 在builds 中找到 libcurl_debug.lib, 加载到 vs工程中, 执行...
Microsoft 程序维护实用工具 (NMAKE.EXE) 是一个 64位,基于说明文件中包含的命令生成项目的工具。 NMake具有丰富的选项,可以完成复杂编译操作。它可以辨别源代码的改动,并选择性的编译,为你节省大量不必要的...
利用多核编译基于VC编译器的Makefile,提升编译效率。
nmake工具,简化编译ASM文件的过程。但需要使用Makefile文件描述来辅助进行。