使用Cygwin编译GLEW,未定义的引用(主要是glXGetProcAddressARB)

时间:2014-09-25 05:08:04

标签: cygwin linker-errors glew

我正在尝试在cygwin中编译GLEW。我从网站上下载了glew版本1.11.0并将其解压缩到C:\glew-1.11.0\。然后导航到cygwin中的文件夹(以管理员身份运行)并执行make后,会出现以下错误。做make all会做同样的事情(如果这很重要)。

/cygdrive/c/glew-1.11.0
$ cc -shared -Wl,--out-implib,lib/libGLEW.dll.a -o lib/cygGLEW--.dll tmp/cygwin/default/shared/glew.o  -lopengl32 -lX11
tmp/cygwin/default/shared/glew.o:glew.c:(.text+0x34b): undefined reference to `glXGetProcAddressARB'
tmp/cygwin/default/shared/glew.o:glew.c:(.text+0x364): undefined reference to `glXGetProcAddressARB'
tmp/cygwin/default/shared/glew.o:glew.c:(.text+0x37d): undefined reference to `glXGetProcAddressARB'
tmp/cygwin/default/shared/glew.o:glew.c:(.text+0x396): undefined reference to `glXGetProcAddressARB'
tmp/cygwin/default/shared/glew.o:glew.c:(.text+0x3af): undefined reference to `glXGetProcAddressARB'
tmp/cygwin/default/shared/glew.o:glew.c:(.text+0x3c8): more undefined references to `glXGetProcAddressARB' follow
tmp/cygwin/default/shared/glew.o:glew.c:(.text+0x141c1): undefined reference to `glGetString'
tmp/cygwin/default/shared/glew.o:glew.c:(.text+0x14220): undefined reference to `glXGetClientString'
tmp/cygwin/default/shared/glew.o:glew.c:(.text+0x1426e): undefined reference to `glXGetProcAddressARB'
tmp/cygwin/default/shared/glew.o:glew.c:(.text+0x142b8): undefined reference to `glXQueryVersion'
tmp/cygwin/default/shared/glew.o:glew.c:(.text+0x142e2): undefined reference to `glXGetClientString'
tmp/cygwin/default/shared/glew.o:glew.c:(.text+0x14387): undefined reference to `glXGetProcAddressARB'
tmp/cygwin/default/shared/glew.o:glew.c:(.text+0x14939): undefined reference to `glXGetProcAddressARB'
tmp/cygwin/default/shared/glew.o:glew.c:(.text+0x14952): undefined reference to `glXGetProcAddressARB'
tmp/cygwin/default/shared/glew.o:glew.c:(.text+0x14988): undefined reference to `glXGetProcAddressARB'
tmp/cygwin/default/shared/glew.o:glew.c:(.text+0x149a1): undefined reference to `glXGetProcAddressARB'
tmp/cygwin/default/shared/glew.o:glew.c:(.text+0x149ba): more undefined references to `glXGetProcAddressARB' follow
tmp/cygwin/default/shared/glew.o:glew.c:(.text+0x164af): undefined reference to `glGetString'
tmp/cygwin/default/shared/glew.o:glew.c:(.text+0x1674e): undefined reference to `glGetString'
tmp/cygwin/default/shared/glew.o:glew.c:(.text+0x16795): undefined reference to `glXGetProcAddressARB'
tmp/cygwin/default/shared/glew.o:glew.c:(.text+0x167ae): undefined reference to `glXGetProcAddressARB'
tmp/cygwin/default/shared/glew.o:glew.c:(.text+0x167c7): undefined reference to `glXGetProcAddressARB'
tmp/cygwin/default/shared/glew.o:glew.c:(.text+0x167e0): undefined reference to `glXGetProcAddressARB'
tmp/cygwin/default/shared/glew.o:glew.c:(.text+0x16891): undefined reference to `glXGetProcAddressARB'
tmp/cygwin/default/shared/glew.o:glew.c:(.text+0x168aa): more undefined references to `glXGetProcAddressARB' follow
collect2: error: ld returned 1 exit status

知道如何编译glew吗?

2 个答案:

答案 0 :(得分:1)

GgW包在Cygwin Ports中可用;你可以看到它们是如何构建的here

答案 1 :(得分:0)

#define _WIN32添加到glew-1.11.0\src\中的所有.c文件似乎可以编译,但有很多内容如下:

warning ‘__glewVertexAttrib3fNV’ redeclared without dllimport attribute: previous dllimport ignored [-Wattributes]
PFNGLVERTEXATTRIB3FNVPROC __glewVertexAttrib3fNV = NULL;