Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 命令行windows编译器(cl.exe)目标_.net_C++_C_Windows - Fatal编程技术网

.net 命令行windows编译器(cl.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

在.NET编译器(csc.exe)中,我可以使用选项
/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);
}