3

我无法让 GLEW 与我的程序正确链接。

我的项目中的路径正确(我已经检查了三次),我尝试使用 x86 库(全部 4 个 - -s、-mxs 等)和 x64 库从头开始构建。

我尝试使用#pragma 指令而不是在属性中配置我的项目。

我正在尝试将其作为静态库获取,因此不需要 DLL。

正如构建说明所建议的那样,我还定义了 GLEW_STATIC。

错误信息:

OGLInit.obj:错误 LNK2019:函数“bool __stdcall vexal::OGLStartup(void)”中引用的未解析外部符号 _glewInit@0 (?OGLStartup@vexal@@YG_NXZ)

我什至使用dumpbin 来检查initGlew 是否存在。它是,而且它是外部的。

我还验证了它找到了库。

搜索 C:\Users\Jake\Documents\Vexal2\vexal\vc9_x86\lib\Debug\GLEW.lib:

我在这里已经没有想法了。有什么帮助吗?

4

2 回答 2

1

是的。我使用 glew_static 项目重建了它。

仅仅因为您构建了该项目并不意味着您正在链接到它。

C:\Users\Jake\Documents\Vexal2\vexal\vc9_x86\lib\Debug\GLEW.lib

那不是静态 GLEW 库。那是 GLEW 的 DLL 版本的导入库。静态 GLEW 库称为GLEW32s.lib. 链接到那个。

于 2012-02-08T16:07:05.207 回答
1

问题是调用约定。我将调用约定设置更改为,__stdcall而不是__cdecl,在我拥有的 GLFW 代码中更改_glfwTerminate_atexit( void )为 __cdecl,然后构建。

固定的!

于 2012-02-08T16:56:48.937 回答