【问题标题】:Command Prompt Opens With OpenGL Program使用 OpenGL 程序打开命令提示符
【发布时间】:2013-04-05 15:14:27
【问题描述】:

为什么每次运行 OpenGL 程序时都会打开 windows 命令提示符?

【问题讨论】:

    标签: opengl cmd command-prompt


    【解决方案1】:

    这与 OpenGL 无关,而是与您使用的框架有关。您很可能正在使用 GLUT,教程使用程序入口函数 main。使用main(与WinMain 不同)的程序的默认子系统在启动时会打开一个控制台窗口。你可以使用我在https://*.com/a/6882500/524368中展示的方法来摆脱它


    如果您在项目构建链接器选项集中使用 Visual C++

    /SUBSYSTEM:windows
    /ENTRY:mainCRTStartup
    

    或者在源文件中使用下面的#pragmaint main(...)

    #pragma comment(linker, "/SUBSYSTEM:windows /ENTRY:mainCRTStartup")
    

    如果使用 GNU 工具链,请使用以下附加链接器标志来设置子系统。无需更改入口功能。

    LDFLAGS += --subsystem windows
    

    【讨论】:

    • 当我编译我的程序时,它说:“警告:忽略杂注注释 [-Wunknown-pragmas]”
    • @JakeSumrican:让我猜猜:你没有使用 Visual C++?抱歉,我应该补充一下,这些说明是特定于 Microsoft 的工具链的。如果您使用的是 GNU 工具链,则必须使用链接器选项。看我的答案更新,我一会儿补充。
    【解决方案2】:

    这是一个可以修改的 Visual Studio 链接器配置设置。

    要在应用程序运行时禁止控制台窗口出现,请执行以下操作:

    1. 右键单击项目
    2. 转到属性 -> 链接器 -> 系统 -> 子系统设置
    3. 确保选择“Windows”而不是“控制台”。

    【讨论】: