Joh*_*han 8 c++ configuration glut freeglut glfw
在Visual C++下,我玩过Glut/FreeGlut/GLFW.似乎这些项目的每个人都默认添加了一个CMD窗口.我尝试将其移除:
属性 - > C/C++ - >预处理器 - >预处理器定义
从这里,我删除_CONSOLE并将其替换为_WINDOWS
然后我去了:
属性 - >连接器 - >系统 - >子系统
我将选项设置为Windows(/ SUBSYSTEM:WINDOWS)
然后当我尝试在GLFW下编译时,我得到以下构建错误:
错误1错误LNK2001:未解析的外部符号_WinMain @ 16 MSVCRT.lib
错误2致命错误LNK1120:1未解析的外部glfwWindow.exe
是否可以删除控制台窗口?
小智 18
在链接器选项下,将入口点设置为mainCRTStartup.此函数执行MS libc的必要设置,然后调用main.
小智 12
我的项目只有一个main,(没有WinMain)并禁用控制台,我只是将Linker-> System-> SubSystem设置为" Windows (/SUBSYSTEM:WINDOWS)"而不是" Console (/SUBSYSTEM:CONSOLE)",控制台就会消失.
您无需使用预处理器定义来删除控制台窗口.
我知道我的答案是迟了几年,但我希望它有所帮助.
非控制台Windows应用程序使用WinMain()入口点约定.您的Glut示例可能使用标准C main()约定.
如果您只想为演示应用程序快速修复,WinAPI函数FreeConsole()可能会有所帮助.
MSDN:http://msdn.microsoft.com/en-us/library/ms683150( v = vs.85).aspx
小智 7
要使用 cmake 摆脱控制台,可以按如下方式设置链接标志:
set_target_properties(exe_name PROPERTIES
LINK_FLAGS "/ENTRY:mainCRTStartup /SUBSYSTEM:WINDOWS")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11396 次 |
| 最近记录: |