在 .NET 编译器 (csc.exe) 中,我可以使用选项 /target:exe
编译成一个 exe,该 exe 将使控制台保持打开状态,以便我可以看到一些 stderr
或 `stdout`` 输出。但是,我无法使用 C/C++ 编译器 (cl.exe) 实现相同的功能。
我的程序使用WinMain
,这意味着它是一个完整的 UI 应用程序。这就是为什么我需要保留控制台。
最佳答案
创建控制台应用程序所需的标志是/subsystem:console
,请查看MSDN文档about it 。它实际上是链接器阶段的一个标志:
link /out:foo.exe /subsystem:console a.obj b.obj
但是,您可以告诉编译器在调用链接器时使用某些标志:
cl /flags /link /subsystem:console
由于您需要一个 main()
来使链接正常工作,因此请提供一个简单的调用 WinMain()
int main() {
return WinMain(0,0,0,0);
}
关于.net - 命令行 Windows 编译器 (cl.exe) 目标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4970373/