我无法让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是否存在。它是,而且是外在的。
我也证实它找到了lib。
搜索 C:\用户\杰克\文件\ Vexal2 \ vexal \ vc9_x86 \ lib中\调试\ GLEW.lib:
我的想法已经用完了。有什么帮助吗?
答案 0 :(得分:1)
是的。我使用glew_static项目重建了它。
仅仅因为您构建了该项目并不意味着您将链接到它。
C:\用户\杰克\文件\ Vexal2 \ vexal \ vc9_x86 \ lib中\调试\ GLEW.lib
这不是静态GLEW库。这是GLEW DLL版本的导入库。静态GLEW库名为GLEW32s.lib
。链接到那。
答案 1 :(得分:1)
问题是调用约定。我将调用约定设置更改为__stdcall
而不是__cdecl
,在我拥有的GLFW代码中将_glfwTerminate_atexit( void )
更改为__cdecl,然后构建。
固定!