OpenGL/GLEW:无法解析的外部_glewInit

OpenGL/GLEW: Unresolved external _glewInit

提问人:Qix - MONICA WAS MISTREATED 提问时间:2/8/2012 最后编辑:genpfaultQix - MONICA WAS MISTREATED 更新时间:2/9/2012 访问量:4678

问:

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

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

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

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

按照构建说明的建议,我还定义了GLEW_STATIC。

错误信息:

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

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

我还验证了它找到了库。

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

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

C++ OpenGL 未解析的外部 GLEW

评论

0赞 KillianDS 2/8/2012
您是否 100% 确定您链接到的是静态 glew 库而不是“导入”库(实际上只是充当 dll 的代理)?
0赞 Qix - MONICA WAS MISTREATED 2/8/2012
是的。我使用 glew_static 项目重建了它。

答:

1赞 Nicol Bolas 2/9/2012 #1

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

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

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

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

评论

0赞 Qix - MONICA WAS MISTREATED 2/9/2012
好吧,做了那些库。不仅将 DLL 添加到解决方案目录,还添加到项目目录和调试目录中。仍然收到相同的错误。
0赞 Nicol Bolas 2/9/2012
不应链接到 DLL。你正在生成静态 GLEW,而不是 DLL 版本。如果要将 GLEW 用作 DLL,则必须删除定义。GLEW_STATIC
0赞 Qix - MONICA WAS MISTREATED 2/9/2012
这就是我一直在做的事情 - 我在项目中定义了GLEW_STATIC并构建了,这产生了 GLEW.lib(这是我告诉它制作的)。
1赞 Qix - MONICA WAS MISTREATED 2/9/2012 #2

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

固定!