在.NET编译器(csc.exe)中,我可以使用选项/target:exe
编译成一个可以使控制台保持打开状态的exe,这样我就可以看到一些stderr
或`stdout``输出。但是,我无法使用C / C ++编译器(cl.exe)实现相同的功能。
我的程序使用WinMain
,这意味着它是一个完整的UI应用程序。这就是我需要保留控制台的原因。
答案 0 :(得分:2)
创建控制台应用程序所需的标志是/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);
}