如何在Win2000平台下使用makefile在命令行形式下编译C/C++源文件? 在《C++编程思想》里举出了在Linux\Unix下使用makefile在命令行形式下编译C/C++源文件的方法,如何在Windows 2000/Windows NT 4.0平台下直接在“命令提示符”(DOS盒)里实现这一点呢?(不用VC 6.0 的IDE) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 花了一个小时,还是把这个问题整明白啦!现把问题的完整背景和解决方法说明如下,希望能对遇上类似问题的朋友有所帮助。 一、问题背景: Brues Eckel给出的源代码文件夹下只有"*.cpp"、"*.h"和"*.makefile"格式的文件,其中“*.makefile”给出了在Borland、Gcc和Microsoft每种环境下的版本,如在Microsoft环境(我想应该指VC++吧)下的版本文件名为“Microsoft.makefile”,显然,在Windows的“命令提示符(DOS盒)”内是可以直接对这个Makefile用命令行编译工具(如Nmake.exe)进行编译的,但怎样实现这一点呢? 二、解决方法: 假定大家已安装了VC ++ 6.0。 在VC的安装目录(如C:\Program Files\Microsoft Visual Studio\VC98\Bin)下,大家可以看见有个批处理文件:VCVARS32.bat,用文本方式打开可见正是这个批处理文件对VC开发环境变量作了设置!将此文件Copy到那个源代码所在的路径下(笔者的机子上是E:\C++\Samples\TIC\code),为了方便起见,不妨给它换个名,比如叫VC32.bat。 发送一个“命令提示符”快捷方式到Windows桌面上,鼠标右击该快捷方式,点击右键菜单的“属性”进入“命令提示符 属性”窗口,点选“快捷方式”一页,在“起始位置”栏中输入想要进行命令行编译工作的路径(如上面的E:\C++\Samples\TIC\code),按“确定”关闭此对话框。进行完此项设定后,双击打开此“命令提示符”快捷方式后,提示符就自动进入在你选定的工作路径(E:\C++\Samples\TIC\code)了!若是Win9x系统,你还要在“批处理文件”一栏输入你上面做的那个批处理文件名:VC32.bat(后面就知道这样做的好处了)。 如上所说,双击打开桌面上的这个“命令提示符”快捷方式后,提示符就自动进入在你选定的工作路径(E:\C++\Samples\TIC\code)下。在NT系统下,输入命令如下: E:\C++\Samples\TIC\code>VC32 此命令执行那个批处理文件VC32.bat(也就是VCVARS32.bat)。 若是在Win9x平台下,你也遵照上一步在“批处理文件”填了内容了,这一步就可免了! 系统将显示一行提示信息,表示已执行了该批处理文件并对环境变量作好了设置: Setting environment for using Microsoft Visual C++ tools. OK!现在我们来到一个存放源码的子文件夹(如第二章c02)中: E:\C++\Samples\TIC\code>cd c02 E:\C++\Samples\TIC\code\c02> 可以看见作者做的那个Microsoft版本的Makefile——Microsoft.makefile。 现在我们执行Nmake.exe对之进行编译: E:\C++\Samples\TIC\code\c02>nmake -f Microsoft.makefile 冒出一大堆东东,都是编译提示信息,而后... OK!编译成功!!作者在这个Microsoft.makefile中把这一章所有的实例源代码给“批处理”了一把(具体怎么做的你可以用文本方式把它打开看一下就很清楚了)。 比如这个很经典的"hello.cpp" ... ... #include <iostream> // Stream declarations using namespace std; int main() { cout << "Hello, World! I am " << 8 << " Today!" << endl; } ///:~ ... ... 在命令行中键入: E:\C++\Samples\TIC\code\c02>hello 执行Nmake.exe通过编译Microsoft.makefile为你生成的可执行文件hello.exe。 机子显示: Hello, World! I am 8 Today! 一切都OK了!现在,你可以不理那个庞大复杂的VC ++ 6.0的IDE以及MFC什么的,在这个原始而且简单的命令行环境下专心致志地学习标准C++语言了。 com hook问题,jameshoo请进 给程序添加成员变量后,程序不能执行了? 一个字符串,可能是ascii,也可能是unicode,如何知道是哪一种,如何提取? 线程内部不能用外面初始化的Com控件对象? 程序员签约时间多长为宜? 用CListCtrl显示一个电影列表,每个电影的后面有播放、查看、发送错误可以点击,怎么办? 两个按钮共用一个相同的函数,如何区分到底是哪一个按钮触发的。 谁能帮忙实现输入法.急急急! 我的宿舍要起一个名字(要求健康向上),请大家帮忙想想,多谢!!. C++程序连接到局域网电脑上的一个ACCESS数据库文件的问题 winsock问题 视频压缩……
一、问题背景:
Brues Eckel给出的源代码文件夹下只有"*.cpp"、"*.h"和"*.makefile"格式的文件,其中“*.makefile”给出了在Borland、Gcc和Microsoft每种环境下的版本,如在Microsoft环境(我想应该指VC++吧)下的版本文件名为“Microsoft.makefile”,显然,在Windows的“命令提示符(DOS盒)”内是可以直接对这个Makefile用命令行编译工具(如Nmake.exe)进行编译的,但怎样实现这一点呢? 二、解决方法:
假定大家已安装了VC ++ 6.0。
在VC的安装目录(如C:\Program Files\Microsoft Visual Studio\VC98\Bin)下,大家可以看见有个批处理文件:VCVARS32.bat,用文本方式打开可见正是这个批处理文件对VC开发环境变量作了设置!将此文件Copy到那个源代码所在的路径下(笔者的机子上是E:\C++\Samples\TIC\code),为了方便起见,不妨给它换个名,比如叫VC32.bat。
发送一个“命令提示符”快捷方式到Windows桌面上,鼠标右击该快捷方式,点击右键菜单的“属性”进入“命令提示符 属性”窗口,点选“快捷方式”一页,在“起始位置”栏中输入想要进行命令行编译工作的路径(如上面的E:\C++\Samples\TIC\code),按“确定”关闭此对话框。进行完此项设定后,双击打开此“命令提示符”快捷方式后,提示符就自动进入在你选定的工作路径(E:\C++\Samples\TIC\code)了!若是Win9x系统,你还要在“批处理文件”一栏输入你上面做的那个批处理文件名:VC32.bat(后面就知道这样做的好处了)。
如上所说,双击打开桌面上的这个“命令提示符”快捷方式后,提示符就自动进入在你选定的工作路径(E:\C++\Samples\TIC\code)下。在NT系统下,输入命令如下:
E:\C++\Samples\TIC\code>VC32
此命令执行那个批处理文件VC32.bat(也就是VCVARS32.bat)。
若是在Win9x平台下,你也遵照上一步在“批处理文件”填了内容了,这一步就可免了!
系统将显示一行提示信息,表示已执行了该批处理文件并对环境变量作好了设置:
Setting environment for using Microsoft Visual C++ tools.
OK!现在我们来到一个存放源码的子文件夹(如第二章c02)中:
E:\C++\Samples\TIC\code>cd c02
E:\C++\Samples\TIC\code\c02>
可以看见作者做的那个Microsoft版本的Makefile——Microsoft.makefile。
现在我们执行Nmake.exe对之进行编译:
E:\C++\Samples\TIC\code\c02>nmake -f Microsoft.makefile
冒出一大堆东东,都是编译提示信息,而后...
OK!编译成功!!作者在这个Microsoft.makefile中把这一章所有的实例源代码给“批处理”了一把(具体怎么做的你可以用文本方式把它打开看一下就很清楚了)。
比如这个很经典的"hello.cpp"
... ...
#include <iostream> // Stream declarations
using namespace std; int main() {
cout << "Hello, World! I am "
<< 8 << " Today!" << endl;
} ///:~
... ...
在命令行中键入:
E:\C++\Samples\TIC\code\c02>hello
执行Nmake.exe通过编译Microsoft.makefile为你生成的可执行文件hello.exe。
机子显示:
Hello, World! I am 8 Today! 一切都OK了!现在,你可以不理那个庞大复杂的VC ++ 6.0的IDE以及MFC什么的,在这个原始而且简单的命令行环境下专心致志地学习标准C++语言了。