VC6.0命令行编译

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

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文件看一下。

(转自http://hi.baidu.com/chenwenjun721/item/1a19798d0886a5814514cf60


### 如何让 VSCode 自动生成 Makefile 在开发过程中,如果希望 Visual Studio Code (VSCode) 能够自动生成 `Makefile` 文件,则可以通过特定插件或者工具链完成这一需求。以下是关于如何通过插件或配置实现自动化的详细介绍。 #### 方法一:使用 CMake 工具生成 Makefile CMake 是一种跨平台构建工具,能够根据项目结构和依赖关系来自动生成适合不同环境的构建脚本(如 Makefile)。具体步骤如下: - 安装 CMake 和 MinGW 或者其他支持的编译器。 - 创建一个 `CMakeLists.txt` 文件,在其中描述项目的源文件、头文件以及目标产物等内容[^1]。 ```cmake # 示例 CMakeLists.txt 配置 cmake_minimum_required(VERSION 3.10) project(MyProject) set(SOURCES main.c sub1.c) add_executable(my_program ${SOURCES}) ``` - 执行以下命令以生成对应的 Makefile: ```bash mkdir build && cd build cmake .. make ``` 上述流程可以在终端手动运行,也可以借助 VSCode 的扩展功能自动化执行这些命令[^2]。 #### 方法二:利用 PlatformIO 插件简化工作流 PlatformIO 提供了一种集成式的解决方案,尤其适用于嵌入式系统开发场景下的复杂工程管理。它内置了对多种硬件架构的支持,并能基于用户的选择动态创建所需的 Makefile 文件[^4]。 安装完成后,只需按照提示初始化新项目即可触发后台机制生成相应的构建规则集;此外还允许开发者直接修改默认模板满足个性化定制需求。 #### 方法三:尝试第三方插件辅助生成 除了以上两种主流方式外,还有部分社区贡献的小型插件可能提供更轻量级的服务——即专注于快速搭建基础框架而无需额外学习成本过高的新技术栈。例如,“Generate Makefiles” 类别的拓展可能会被发现于官方市场之中,尽管其稳定性和兼容范围相对有限一些。 对于 Windows 平台上的 GCC 编译调试而言,确保已正确设置好路径变量以便调用外部工具非常重要[^3]。同时调整 launch.json 中断点映射参数有助于提升实际体验效果。 --- ```json // tasks.json 示例片段 { "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "mingw32-make", // 假设已经关联到全局PATH里 "group": { "kind": "build", "isDefault": true }, "problemMatcher": ["$gcc"] } ] } ``` --- #### 注意事项 无论采用哪种方法都需要确认本地环境中存在必要的软件组件版本匹配情况良好才能顺利推进后续环节的操作进程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值