一个有难度的问题:用命令行编译MFC项目

newlife2002_313 2009-03-03 10:33:45
把问题更加明确一点:
1. 用vs的向导,生成一个基于对话框的MFC程序
2. 用命令行编译、链接出最终的.exe,就像在IDE中build出来的一样
问题: 这个命令行怎么写?
目标: 用于自动编译的,比如Daily-Build或者持续集成(CruiseControl)
...全文
370 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
水星灭绝 2010-09-27
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 zhoujianhei 的回复:]

使用批处理

@cls
@call "%VS71COMNTOOLS%vsvars32.bat"

@devenv "XXXX.sln" /build Debug

%VS71COMNTOOLS%
这个是环境变量,用于指定IDE路径。
[/Quote]
7楼说的不错,我按他说的做了,配上gtest,现在可以持续集成单元测试了。
Conry 2009-03-04
  • 打赏
  • 举报
回复
为什么一定要命令行?其他解决方案不行吗?
先确定解决方案,再讨论具体的技术
cmf41013 2009-03-04
  • 打赏
  • 举报
回复
有毛病啊,不就是写makefile文件么?
jaylong35 2009-03-04
  • 打赏
  • 举报
回复
学习了,UP
chuengchuenghq 2009-03-04
  • 打赏
  • 举报
回复
vc6下
for %%f in (xxx) do "C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\MSDEV.COM" %%f/%%f.dsw /Make "all - Win32 Debug" /BUILD /USEENV /log >> output.txt
vs2003;
for %%f in (xxx) do "C:\Program Files\Microsoft Visual Studio 9.0\Common7/IDE/devenv.com" %%f/%%f.sln /build Debug /log >> output.txt
vs2008;
for %%f in (xxx) do "C:\Program Files\Microsoft Visual Studio 9.0\Common7/IDE/devenv.com" %%f/%%f.sln /build Debug /log >> output.txt

其中app是工程名字。
rsp19801226 2009-03-03
  • 打赏
  • 举报
回复
胡乱发个言好了,可以用cl.exe 编译程序,就类似gcc什么的
yc_8301 2009-03-03
  • 打赏
  • 举报
回复
支持,使用:
.net的命令行,
C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Tools\vsvars32.bat
devenv "1Thread.sln" /build Debug
菜牛 2009-03-03
  • 打赏
  • 举报
回复
假设你已经安装好了VS:
第一步:安装对应的MSDN
第二步:打开MSDN
第三步:(以VS2003中文版的MSDN为例)打开MSDN的目录页,在“筛选依据”中选择选择“无筛选器”,然后依次打开“目录”中的“Visual Studio .NET”->“Visual C++”->“生成 C/C++ 程序”->“在命令行上生成”。
第四步:仔细阅读理解,尤其是NMAKE参考和相关的编译器、链接器选项,都是中文资料。
  • 打赏
  • 举报
回复
其实本质上是Nmake的用法
cnzdgs 2009-03-03
  • 打赏
  • 举报
回复
如果是VC6,例如生成Test.dsw的Release配置,可以开一个命令提示窗口,先执行vc98\bin下的VCVARS32.BAT,然后执行:
msdev Test.dsw /make -release
zhoujianhei 2009-03-03
  • 打赏
  • 举报
回复
使用批处理

@cls
@call "%VS71COMNTOOLS%vsvars32.bat"

@devenv "XXXX.sln" /build Debug

%VS71COMNTOOLS%
这个是环境变量,用于指定IDE路径。

cnzdgs 2009-03-03
  • 打赏
  • 举报
回复
更正一下:
devenv Test.sln /build release
cnzdgs 2009-03-03
  • 打赏
  • 举报
回复
生成VS.NET的解决方案(例如Test.sln的Release配置),可以开一个VS的命令提示窗口,然后执行:
devenu Test.sln /build release
levelmouse 2009-03-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 thenshesaid 的回复:]
1. 去Project Setting里把命令行拷出来
2. 看build log里面也有
[/Quote]
学习,up
cnzdgs 2009-03-03
  • 打赏
  • 举报
回复
你的VC是哪个版本?
jxb_memory 2009-03-03
  • 打赏
  • 举报
回复
你似乎是想用批处理来编译若干工程吧?以便省去一个个便宜的麻烦吧!
thenshesaid 2009-03-03
  • 打赏
  • 举报
回复
1. 去Project Setting里把命令行拷出来
2. 看build log里面也有
闪破风浪 2009-03-03
  • 打赏
  • 举报
回复
VS6.0有直接导出MakeFile的呀~
yjgx007 2009-03-03
  • 打赏
  • 举报
回复
www.cmake.org兼容各种平台的编译文件生成,编译.
用户 昵称 2009-03-03
  • 打赏
  • 举报
回复
学习一下。
加载更多回复(3)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧