3

我正在尝试从命令行编译一个项目,如下所示:

devenv.exe myproj.sln /build release

看起来代码编译得很好,但这并不是我所需要的:

我希望能够在编译器发生时捕获输出(例如警告、错误)。不幸的是,一旦我发出上述命令,我就会返回到命令提示符。

当我查看 process-explorer 或 taskmgr.exe 时,我可以看到 devenv.exe 进程(和其他一些子进程)正在运行。如果我查看输出文件夹,我可以看到我的所有文件逐渐出现。

有没有办法让 VCC 工作起来更像 GCC - 当我发出构建命令或使用 Makefile 制作项目时,我会收到一条消息流并且控制台会阻塞,直到该过程完成。

更新:谢谢,两个出色的解决方案。我可以确认它有效。

4

2 回答 2

10

devenv 使用这个有趣的调度程序在命令行模式和窗口模式之间切换。除了 devenv.exe 之外,实际上还有一个 devenv.com,因为 *.com 优先于 *.exe,所以它首先被调用。devenv.com 分析命令行并决定调用什么。

换句话说,将您的命令行更改为:

devenv myproj.sln /build release

你应该没事。

于 2009-01-16T11:24:56.160 回答
9

使用 devenv.com 代替 devenv.exe,你会得到你想要的。

您也可以使用 MSBuild.exe 获得更多选项。

于 2009-01-16T11:23:54.727 回答