Win10 x64+VS2013编译OpenGL程序用于WinXP系统运行方法——以库GLFW 3.2.1中gears为例

我最近玩OpenGL探索有得,以飨大家。

GLFW是一个用于OpenGL编程的C语言库,可下载或自行用源码编译出glfw3.lib。

怎样编译出能在WinXP系统运行的OpenGL程序?下面以GLFW库中自带的例子gears为例:
这里写图片描述

打开Release配置或者MinSizeRel,我这里是MinSizeRel。

  1. 设置平台工具集。
    这里写图片描述

  2. 设置运行库。
    这里写图片描述
    这里要从/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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值