zoukankan      html  css  js  c++  java
  • vc6.0批量编译

    一直想研究一下怎么让电脑批处理编译程序,今天就从vc6开始,做个记录,学习一下。

    VC可以生成make文件(Project->Export Makefile),在设置好环境变量下,执行NMAKE /f "yourProjectName.mak" 就可以编译了,但这种方式前提就是需要make文件,make文件可以从VC dsp项目文件转化得到(网上可能有代码..),但是总是麻烦的,昨天偶然发现VC提供了一种可以直接命令行下编译项目的方法,我试过,很好用,如果需要写批处理的话(省得手动去编译)可以使用这种方式:

    msdev yourProjectName.dsw /make "yourProjectName - Win32 Release"
     
    注意后面的引号中的部分,可以去dsp文件中看看,yourProjectName后面不需要加.dsw,一般的选择就有 "yourProjectName - Win32 Release" 和"yourProjectName - Win32 Debug"两种。如果你的项目是dll,还可能会有 "yourProjectName - Win32 Release MinSize"等等。【1】
    ============================================

    VC下用命令行编译C++ Console程序
    2008-09-28 22:20:37
    最近安装老古董VC6,不想安装到一半怎么也装不下去了。不过还好VC环境所需的文件基本上装全了,只是没有设置系统环境。于是只好用命令行的编译方法。

    VC安装路径为:
    E:Program FilesMicrosoft Visual Studio
    在DOS窗口中编译的命令为:(假设文件名为score.cpp)

    E: est>"E:Program FilesMicrosoft Visual StudioVC98Bincl.exe" /GX /W3 /I "E:Program FilesMicrosoft Visual StudioVC98Include" /c score.cpp

    编译之后,进行链接:

    E: est>"E:Program FilesMicrosoft Visual StudioVC98Binlink.exe" *.obj /LIBPATH:"E:Program FilesMicrosoft Visual StudioVC98Lib"

    这样即可生成exe可执行文件。【2】

    VC6.0命令行编译及使用makefile编译的方法【3】

    VC6是挺经典的一个IDE,但有时编译比较慢。作为一个典型的程序员,我总想让电脑多做点事,自己少点事。编译软件也一样,又是能够执行后不管了,让程序自己慢慢编译,人可以做其他事情,或者直接写成批处理,自动的一个个慢慢执行编译就好了。所以一直想探索一下vc6环境怎么使用命令行编译,以及vc6怎么使用makefile编译。

    今天终于找到办法!虽然还停留在初浅的层面,但还是可以做到命令行自动编译了。所以写下来既是分享,也供自己以后查阅。

    一、VC6命令行编译

    VC6对应的可执行文件是msdev,在命令行窗口(以下简称cmd)中输入msdev /? 回车就能看到msdev的命令行参数帮助了(如果提示未知命令,那么请使用vc6安装目录下的VCVARS32.BAT设置环境)。帮助信息如下:

    F:VC_Codemaintest>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: esult.txt

    maintest.dsw 工作区文件

    /make 编译指令

    all 编译所有项目(project),如果工作区有多个项目,也可以指定只编译特定项目,可以使用记事本打开dsw文件,可以看到里面包含的各个项目文件。

    win32 平台(platform),vc6运行基本也就是win32平台了,所以一般该参数可以省略。

    debug 编译设置项(configname),可以在DEBUG|RELEASE|ALL选择

    /out f: esult.txt 重定向输出,把编译过程的信息输出到f: esult.txt中。

    所以上面的命令行的意思就是:把maintest.dsw工作区里的所有项目编译debug版的产品,并把编译过程的信息输出到f: esult.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: esult.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文件看一下。




    以上参考自:

    【1】vc6命令行编译方法《新浪博客》

    【2】VC下用命令行编译C++ Console程序

    【3】VC6.0命令行编译及使用makefile编译的方法

  • 相关阅读:
    frida多版本安装 ubuntu同时安装多个版本的frida
    python爬虫备忘录
    解决linux不能启动google问题
    Centos7 自定义守护进程
    (CentOS 7.0和7.5实验过) 更改网卡名称
    centos 配置网络连接(本机是基于无线网,虚拟机上)
    linux 仿QQ 2.0版本
    linux 实现仿QQ应用程序
    linux 终端、伪终端、虚拟终端的理解
    linux中的make命令
  • 原文地址:https://www.cnblogs.com/de8ug/p/5134540.html
Copyright © 2011-2022 走看看