注意:是的,我已经指定了 GLEW_STATIC。
因此,在尝试设置glew以在新项目中使用之前,我已经经历过这个牛仔竞技表演,但现在我在项目中使用glew 2.0,它产生了链接错误。我刚刚在 Linux 实例中生成了源代码并像这样使用它们。
#include "Renderer.h"
#include <windows.h>
#include "GL/glew.h"
#include "Logger.h"
void Renderer::init(void* windowHandle) {
Logger logger("Renderer::init");
GLenum result = glewInit();
if (result != GLEW_OK) {
LOG(logger) << "Failed to run glew init with error: " << result;
}
}
这是我在命名空间渲染器中声明并在此处定义的函数。相关性是我只打电话glewInit()
, 这就对了。
产生的链接错误是:
Error LNK2019 unresolved external symbol __imp_glGetIntegerv referenced in function glewContextInit
Error LNK2019 unresolved external symbol __imp_glGetString referenced in function glewContextInit
Error LNK2019 unresolved external symbol __imp_wglGetCurrentDC referenced in function wglewInit
Error LNK2019 unresolved external symbol __imp_wglGetProcAddress referenced in function wglewInit
与正常的“未定义声明的函数”类型的错误之间的区别是,仅缺少这四个选定的错误。由于它们附加了 __imp_ 标记,通常表明它们期望链接到动态库,所以有人告诉我它们可能是生成文件中的错误?有人在链接glew时遇到过这个问题吗?
当然,经过一晚上的搜索,发帖后10分钟就能找到答案。我已经有一段时间没有这样做了,所以我忘记了 win32 仍然要求您包含 opengl32.lib,因为它包含 glGetIntegerv 的版本(以及其他函数),它应该从 Windows 包含的 opengl 1.0 实现中使用,而不是像所有扩展一样从驱动程序查询它们。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)