.net 命令行windows编译器(cl.exe)目标
在.NET编译器(csc.exe)中,我可以使用选项.net 命令行windows编译器(cl.exe)目标,.net,c++,c,windows,.net,C++,C,Windows,在.NET编译器(csc.exe)中,我可以使用选项/target:exe编译成一个exe,使控制台保持打开状态,以便我可以看到一些stderr或'stdout``输出。但是,我无法使用C/C++编译器(cl.exe)实现相同的功能 我的程序使用WinMain,这意味着它是一个完整的UI应用程序。这就是我需要保留控制台的原因。创建控制台应用程序所需的标志是/subsystem:console,请查看MSDN文档。它实际上是链接器阶段的标志: link /out:foo.exe /subsyste
/target:exe
编译成一个exe,使控制台保持打开状态,以便我可以看到一些stderr
或'stdout``输出。但是,我无法使用C/C++编译器(cl.exe)实现相同的功能
我的程序使用
WinMain
,这意味着它是一个完整的UI应用程序。这就是我需要保留控制台的原因。创建控制台应用程序所需的标志是/subsystem:console
,请查看MSDN文档。它实际上是链接器阶段的标志:
link /out:foo.exe /subsystem:console a.obj b.obj
但是,您可以告诉编译器在调用链接器时使用某些标志:
cl /flags /link /subsystem:console
由于需要一个main()
使链接工作,因此提供一个调用WinMain()
我忘了指定我使用的是
WinMain
,因此我的应用程序有一个UI,它不是一个简单的命令行程序。我得到了一个带有该标志的链接错误:LIBCMT.lib(crt0.obj):错误LNK2019:未解析的外部符号_main在函数uuuuuu tmainCRTStartup main.exe中引用:致命错误LNK1120:1未解析的外部
谢谢。使用WinMain调用woks添加主函数!好吧,创建一个。调用AllocConsole()。
int main() {
return WinMain(0,0,0,0);
}