去掉 GLFW Windows 控制台黑窗口 -- MinGW, CMake
前情提要
在编译完Box2d 的testbed 后,我尝试运行程序,体验Box2d 的物理世界……
发现问题
每一次运行程序都会先打开控制台窗口(如图),然后才出现图形程序界面,文本输出也显示在了上面。但是如果我不需要这控制台窗口呢?比如我不希望打开游戏需要与游戏无关的窗口。需要关闭它。
解决过程
我在查阅了大量网上资料,但各篇文章的作者提供的解决方案都对去除黑框不起作用,我翻了翻GLFW 的示例程序,发现一些示例不会弹出控制台,结合example 的CMakeList.txt 文件,我发现对应的程序有WIN32 标识(如图)。最后,尝试加入WIN32 标识,重新编译,再次运行,没有弹出黑窗口!完成。
总结
- WIN32 标识是用于Windows系统下创建一个以WinMain为入口的可执行目标文件(通常入口函数为main),它不是一个控制台应用程序,而是一个GUI应用程序。当WIN32选项使用的时候,可执行目标的 WIN32_EXECUTABLE会被置位ON。
- 为GLFW 程序启用该标识即可关闭黑窗口。