vc6.0批量编译
一直想研究一下怎么让电脑批处理编译程序,今天就从vc6开始,做个记录,学习一下。
msdev yourProjectName.dsw /make "yourProjectName - Win32 Release"
============================================
2008-09-28 22:20:37
VC安装路径为:
E:\Program Files\Microsoft Visual Studio
在DOS窗口中编译的命令为:(假设文件名为score.cpp)
编译之后,进行链接:
这样即可生成exe可执行文件。【2】
VC6.0命令行编译及使用makefile编译的方法【3】
VC6是挺经典的一个IDE,但有时编译比较慢。作为一个典型的程序员,我总想让电脑多做点事,自己少点事。编译软件也一样,又是能够执行后不管了,让程序自己慢慢编译,人可以做其他事情,或者直接写成批处理,自动的一个个慢慢执行编译就好了。所以一直想探索一下vc6环境怎么使用命令行编译,以及vc6怎么使用makefile编译。
今天终于找到办法!虽然还停留在初浅的层面,但还是可以做到命令行自动编译了。所以写下来既是分享,也供自己以后查阅。
一、VC6命令行编译
VC6对应的可执行文件是msdev,在命令行窗口(以下简称cmd)中输入msdev /? 回车就能看到msdev的命令行参数帮助了(如果提示未知命令,那么请使用vc6安装目录下的VCVARS32.BAT设置环境)。帮助信息如下:
F:\VC_Code\maintest>msdev/?
Usage:
MSDEV [myprj.dsp|mywksp.dsw] - load project/workspace
[<filename>] - load source file
/? - display usageinformation
/EX <macroname> - execute a VBScript macro
/OUT <filename> - redirect command line output to afile
/USEENV - ignoretools.options.directories settings
/MAKE [<target>] [...] - build specified target(s)
[<project> -<platform> <configname>]
[[<project>|ALL] -[DEBUG|RELEASE|ALL]]
/CLEAN - delete intermediate files butdon't build
/REBUILD - clean and build
/NORECURSE - don't build dependent projects
下面逐个参数论述:
[myprj.dsp|mywksp.dsw] - load project/workspace
[<filename>] - load source file
/? - display usage information
/EX<macroname> - execute aVBScript macro
/USEENV - ignoretools.options.directories settings
这几个选项跟本文想论述的内容关系不大,也比较好懂,有兴趣的人自己动手试一下就知道了。
/OUT<filename> - redirectcommand line output to a file 把输入信息重定向到文件中,可以跟编译指令结合,保存编译过程的输出信息,有利于确认编译成功与否,特别是使用批处理批量编译时。
/MAKE 就是主角了,就是编译指令了。下面以几个示例来说明吧:
(1)编译工作区文件(dsw)的项目
msdev maintest.dsw/make "all - win32 debug" /out f:\result.txt
maintest.dsw 工作区文件
/make 编译指令
all 编译所有项目(project),如果工作区有多个项目,也可以指定只编译特定项目,可以使用记事本打开dsw文件,可以看到里面包含的各个项目文件。
win32 平台(platform),vc6运行基本也就是win32平台了,所以一般该参数可以省略。
debug 编译设置项(configname),可以在DEBUG|RELEASE|ALL选择
/out f:\result.txt 重定向输出,把编译过程的信息输出到f:\result.txt中。
所以上面的命令行的意思就是:把maintest.dsw工作区里的所有项目编译debug版的产品,并把编译过程的信息输出到f:\result.txt中。
据此可以容易理解下面几个命令行的意思吧:
msdev maintest.dsw /make "all - win32release" –所有项目编译release版
msdev maintest.dsw /make "all -all" --所有项目编译debug和release版
msdev maintest.dsw /make "maintest -release" –编译工作区中的maintest项目的release版
(2)编译项目文件(dsp)的项目
msdev maintest.dsp/make "all - win32 debug" /out f:\result.txt
maintest.dsp 项目配置文件
其他参数都跟编译工作区文件(dsw)的项目一样,注意其他的all,一直保持all就行了,因为项目配置文件里面也就只包含一个项目了。
/CLEAN - delete intermediate files butdon't build
/REBUILD - clean and build
跟图形化VC6 IDE中的BUILD->CLEAN和BUILD->REBUILD ALL意义是一样的,这里就不赘述了。
二、VC6使用makefile编译
VC6 IDE带的makefile编译程序是nmake,也可以在cmd中输入nmake /?获取详细的帮助信息,因为我自己没有一一使用过,所以也就不一一论述了。下面只提供一个使用的方法:
(1)在VC6图形化界面上打开一个项目,然后执行Project->Export Makefile,会在项目的目录下生成mak和dep两个文件,这就是项目配置的makefile了。
(2)然后使用如下命令行编译了:
NMAKE /f "maintest.mak"CFG="maintest - Win32 Debug" /y /d
NMAKE /f "maintest.mak"CFG="maintest - Win32 Release" /y /d
注意这里的CFG="maintest- Win32 Debug"区分大小写的,而msdev的/make "all - win32 release"是不区分大小写的。
如果你有兴趣继续探索,可以使用记事本打开dsp和mak文件看一下。
以上参考自:
vc6.0批量编译的更多相关文章
- vc6.0 点编译时提示Cannot complile the file 'D:\souce-code\vc-workspace\对话框\MainFrm.h'; no compile tool is
问题描写叙述: vc6.0程序,点击编译时提示对话框,内容为: Cannot complile the file 'D:\souce-code\vc-workspace\对话框\MainFrm.h'; ...
- VC6.0常见编译错误提示
原文:http://c.biancheng.net/cpp/html/746.html 1) error C2001: newline in constant 编号:C2001 直译:在常量中出现了换 ...
- vc6.0批量加注释
MATLAB批量加注释的方法非常简单明了,加注释是ctrl+R,去注释是ctrl+T 然后在VC中我对一条一条加注释的方法非常烦恼,我想也许会有简单的方法可以批量家注释.果然,先贴代码 '------ ...
- 在VC6.0中编译头文件时产生moc文件
1.在FileView视图中 右键点击需要产生moc文件的头文件(就是类中包含Q_OBJECT宏,如果没有这个宏就不需要产生moc文件) 2.在右键菜单中选择Setting... 3.选择Custom ...
- VC6.0静态编译注意事项
选择静态编译(工程->常规->Microsoft基础类->使用MFC作为静态链接库)的时候,会报错:MSVCRTD.lib(MSVCRTD.dll) : error LNK2005: ...
- 比特币初始版本VC6.0编译
1 源码下载 github上初始版本是bitcoin-0.1.5,可以从https://github.com/bitcoin/bitcoin下载,但是从网上可以找到更老版本bitcoin-0.1.0, ...
- VC6.0编译boost
今天学习了下VC6.0下boost的编译,只是对regex进行了编译,据说全部编译需要2个多小时,在此记录下学习过程中遇到的问题以便今后查看. 最开始直接从网上(www.boost.org)下载了当前 ...
- VC6.0编译DLL,使用VS2010调用问题及解决方法
1.做驱动的时候.做应用程序须要和驱动通信,必须建立一个DLL. 2.由于客户使用版本号太低,须要使用到VC6.0编写DLL 3.在VC6.0上编写DLL的时候,导出的函数名会出现和原函数名不正确,导 ...
- 让VC6.0编译出来的程序支持XP样式或XP风格
(1)VC6.0编译出来的win32程序不支持winxp样式的原因:微软WINXP系统更新了Comctl32.dll(ver 6.0)这个“XP风格”的控件.为了保留传统的Windows界面风格,特地 ...
随机推荐
- TreeSet类的排序问题
http://www.cnblogs.com/lixiaolun/archive/2012/12/25/2832775.html TreeSet支持两种排序方法:自然排序和定制排序.TreeSet默 ...
- 用一条sql查出总长和状态为2是长度
查询同一张表里同一个字段值的和以及状态是2(或1)时,该字段值的和
- flash Builder JSON使用实例
flash Builder JSON 使用说明(转载houdinime) XML虽然强大但有人觉得xml不够简洁,编码和解码也有一定难度,于是21世纪初有人发明了JSON编码,相比xml内容少并且容易 ...
- CentOs 安装 Nginx + php + mysql (推荐方式)
本文全部采用yum进行安装, CentOs6.5 mini 版本. 一.更改yum源为网易的源加快速度, 如果是从网易镜像下载的安装包,直接注释这几项也可以 vim /etc/yum.repos.d/ ...
- javaScript的2种变量范围有什么不同
1.javascript怎样选中一个checkbox,怎样设置它无效? document.all.cb1[0].disabled = true; 2.js中的3种弹出式消息提醒(警告窗口,确认窗口 ...
- vmware 使用技巧
1.虚拟机如何进入BIOS界面? 方法: 1) 开机按F2 2) 若来不及按F2的话,可以通过以下 2. 如何让虚拟机进入安全模式? 方法:开机快速按F8 3. 当不能连接到vCenter Serve ...
- Mysql查询优化随笔记录
select SQL_CALC_FOUND_ROWS * from (select * from oses_vehdata201606 union all select * from oses_ ...
- Android_按钮被按下效果的实现(selector选择器)
在很多刚入门的新手在开发实例的过程中,经常会遇到要按下某个ImageView时,需要加入确认感的时候.需要在按下的时候,控制ImageVIew内图片的显示. 在我是新手的时候,也这样做过.所以这里简单 ...
- 读写分离提高 SQL Server 并发性
转自:http://www.canway.net/Lists/CanwayOriginalArticels/DispForm.aspx?ID=476 在一些大型的网站或者应用中,单台的SQL Serv ...
- JS 严格模式
标志 "use strict"; //老版本浏览器会自动忽略 调用 //整个文件调用 (function(){ "use strict"; })(); //单个 ...