我正在使用Windows而我正在调用函数glGenBuffers
。当我使用它时,我收到以下错误:
error: undefined reference to _imp____glewBufferData
我正在链接glew32
文件夹中的MinGW/lib
dll,glew.h
内有MinGW/include
。我还将glew32.dll
放在WINDOWS/system32
文件夹中。
我正在编译:
mingw32-g++.exe ... -lglfw -lglfw3 -lopengl32 -lglew32 -lgdi32 -lglu32 -lglew32s
是导致问题的库的顺序吗?如果是这样,应该在另一个之前发生什么?
答案 0 :(得分:3)
MinGW不喜欢Windows附带glew的二进制动态库,它只能用于Visual C ++,除非你做了很多不必要的复杂事情。
更简单的解决方案是从构建命令行中删除-lglew32
,保留-lglew32s
(静态库)并添加-DGLEW_STATIC
。最后一部分非常重要,因为当#include "glew.h"
时,glew默认采用动态链接。必须首先定义GLEW_STATIC
,以便链接器在Windows上正确解析静态符号。