.net - 命令行 Windows 编译器 (cl.exe) 目标

标签 .net c++ c windows

在 .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/

相关文章:

c++ - 重载 "->*"运算符

我可以在 C 中的 2 个子进程之间使用相同的管道吗?

c# - 在 WPF 表单上显示 HTML 片段

asp.net - SignalR 和加入组

c++ - 如何在 C++ 中处理不同的模板参数?

c - 如何在运行不同的 C 文件时从命令行调用可执行 C 文件?

c - 输入今天的日期得到明天的输出

.net - 重新指定已经继承的接口(interface)有什么意义吗?

.net - CopyToDataTable() 用于空行

c++ - 命名空间中变量的默认/自定义值