VS10始终链接到SUBSYSTEM:WINDOWS; CMake SDL GLEW
我只是想设置一个能够在CMake支持的每个平台上编译的简单项目.我在Win7系统上启动了我的项目,并编写了一个包含SDL.h和GL / glew.h的main.cpp.主要功能的风格很简单:
int main(int,char**) {} 在我的CMakeLists.txt中,我调用了find_package(SDL)和find_package(GLEW). CMake-part运行良好,所以我刚刚打开了vs10-solution-file并尝试编译,当我得到LNK2019时:
这意味着我选择了错误的子系统,不是吗?但是,如果我只是将子系统从CONSOLE切换到WINDOWS并返回,则问题仍然存在. CMake为此设置了隐藏选项吗?如何在vs10中编译我的简单程序? 解决方法
我今晚遇到了这个问题.我正在使用CMake创建一个MSVC项目来构建我的GLFW应用程序.当然,如果你自己使用MSVC,摆脱控制台窗口的古老技巧是进入属性并将“子系统”设置为“Windows”和“入口点”到mainCRTStartup,这对应于将/ SUBSYSTEM:WINDOWS / ENTRY:“mainCRTStartup”标志添加到link.exe,但CMake没有提供一种简单的方法.
如果你只是做一个直接的add_executable()命令,你将得到/ SUBSYSTEM:CONSOLE / ENTRY:“mainCRTStartup”被传递给链接器. 如果你执行add_executable(exename WIN32 …),你将获得/ SUBSYSTEM:WINDOWS. Gaah!这两种选择都让我们中途到了! 我浏览了CMake随附的.cmake文件(fwiw,我正在使用CMake 2.8.10和Visual Studio 2012 Express),并发现似乎控制/ SUBSYSTEM和/ ENTRY标志的变量称为CMAKE_CREATE_WIN32_EXE.因此,要设置这两个部分,我们只需要更改该变量.这就是我最终得到的结果: if(MSVC) set(CMAKE_CREATE_WIN32_EXE "/SUBSYSTEM:WINDOWS /ENTRY:"mainCRTStartup"") endif(MSVC) 希望能帮助别人. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows – 尝试从Vim编译和调试C语言
- .net – 如何以编程方式刷新Windows Mobile中的DNS缓存?
- windows-server-2008 – 没有“通过远程桌面服务登录”权限
- 使用自定义名称安装Windows服务
- 是否可以在Windows上的iPhone模拟器中运行IPA文件?
- windows – 无线成像是否可行和/或可行? PXE通过无线启动?
- ipa上传反馈请修改应用程序info.plist文件中相关用途字符串
- windows-7 – 使用Powershell查询schtasks
- TwitteR,ROAuth和Windows:注册确定,但证书验证失败
- windows – Internet Explorer 8在哪里存储其故障转储?
- openid – Hotmail / Windows Live的开放ID端点
- 电脑 Windows 7怎么 设置连接PPTP教程
- Windows下安装Scrapy方法及常见安装问题总结——
- 在Windows 7 64上安装IPython 0.12
- Windows下Memcached在.Net程序中的实际运用(从Me
- wcf – Windows Phone 7.1上的NetTcpBinding(芒果
- winapi – 如何在64位Windows程序集中使用“GS:
- windows-8 – 在启动时运行autostart_console.ba
- 是否有scintilla(scilexer.dll)的版本包含HTML的
- windows-7 – 如何从同一图像PXE启动多个Windows