本文主要是介绍Win10 x64+VS2013编译OpenGL程序用于WinXP系统运行方法——以库GLFW 3.2.1中gears为例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
我最近玩OpenGL探索有得,以飨大家。
GLFW是一个用于OpenGL编程的C语言库,可下载或自行用源码编译出glfw3.lib。
怎样编译出能在WinXP系统运行的OpenGL程序?下面以GLFW库中自带的例子gears为例:
打开Release配置或者MinSizeRel,我这里是MinSizeRel。
设置平台工具集。
设置运行库。
这里要从/MD改成/MT,区别在于MD是要依赖msvcr120.dll的,在WinXP原生系统中会报错“缺少DLL”。而MT则相反,所以MT编译的程序要大一点点。
之后链接器可能会报错,因为glfw3.lib是用/MD编译的。解决方法为打开glfw项目,按照前述1,2点进行设置,编译出glfw3.lib。
好,现在编译gears,得到exe,214KB,打开,运行正常。
虚拟机打开WinXP系统,拷进去,运行正常。
关于“不是有效的Win32应用程序”错误:
我发现自己写的用glfw库的程序按如上操作生成exe,在XP系统报错“不是有效的Win32应用程序”。解决方法为在 链接器 - 系统 里设置 子系统 为 控制台 (/SUBSYSTEM:CONSOLE)。之后在XP系统下可以打开程序弹出控制台,但是报错Fail to create glfw window。之后再解决吧。
参考文献
1. 这篇写运行库设置非常详细:
MT,MTd,MD,MDd详解解决 MSVCRTD.LIB和LIBCMTD.LIB冲突
2. 这篇简要提到了/MT和/MD的效果区别:
去除对MSVCR120.DLL的依赖
3. 这篇重点提到所有链接到的库运行库设置都必须一样:
LIBCMT.lib : error LNK2005
这篇关于Win10 x64+VS2013编译OpenGL程序用于WinXP系统运行方法——以库GLFW 3.2.1中gears为例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!