Glad: 致命错误:在 OSX 上使用不同类型重新定义 typedef

创建于 2016-11-29  ·  7评论  ·  资料来源: Dav1dde/glad

本期所述,OSX 似乎已经包含 GLsizeiptr 和其他一些。 同样的问题也发生在glad.h 上。 解决方法似乎是使用 long 而不是 ptrdiff_t。 是另一个例子。

bug glad2

最有用的评论

本周末试图研究这个问题,希望我能找到一种方法来重现它而无需访问 OSX 实例(我假设只获取 OSX 标头就足够了)。

所有7条评论

谢谢,我将不得不调查这个以及为什么这些类型已经存在......

也遇到了这个问题,有更新吗?

本周末试图研究这个问题,希望我能找到一种方法来重现它而无需访问 OSX 实例(我假设只获取 OSX 标头就足够了)。

干杯:)

修复看起来像这样:

#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
typedef long GLintptr;
#else
typedef ptrdiff_t GLintptr;
#endif
#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
typedef long GLsizeiptr;
#else
typedef ptrdiff_t GLsizeiptr;
#endif
typedef int64_t GLint64;
typedef uint64_t GLuint64;
#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
typedef long GLintptrARB;
#else
typedef ptrdiff_t GLintptrARB;
#endif
#if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ > 1060)
typedef long GLsizeiptrARB;
#else
typedef ptrdiff_t GLsizeiptrARB;
#endif

OSX 版本 > 10.6(从 10.7 开始)仅支持 64 位,不幸的是我无法在 OSX 设备上测试它,如果它确实按预期工作,请报告。

之后我会发布一个新版本并更新在线生成器。

我把这些更改放在glad.h 中。 为我工作。

太好了,谢谢!

此页面是否有帮助?
0 / 5 - 0 等级