我在Ubuntu 32位上交叉编译我的3d项目的win32版本,并且无法与glew static链接 .

我使用glew 1.12包中提供的配置文件为mingw生成libGLEW.a:

make SYSTEM = linux-mingw64

在我的项目lib目录中将其重命名为libGLEW_win32.a,
添加编译器定义标志:

GLEW_STATIC

编译Codeblocks中的所有模块 . cb发送的链接命令是:

i686-w64-mingw32-g -posix -L / usr / local / lib -L / usr / i686-w64-mingw32 / lib -o ../bin/pgm.exe obj / Bar.o obj / Cache.o obj / Camera.o obj / Config.o obj / Fab.o obj / Font.o obj / main.o obj / Math.o obj / Mesh.o obj / OpenGL.o obj / Selector.o obj / Shadow.o obj / Shader.o obj / System.o obj / Texture.o obj / Tile.o -std = c 0x -static-libstdc -static-libgcc -lodbc32 -lwsock32 -lwinspool -lwinmm -lshell32 -lctctl32 -lctl3d32 -lodbc32 - ladvapi32 -lodbc32 -lwsock32 -lopengl32 -lglu32 -lole32 -loleaut32 -luuid ../lib/libGLEW_win32.a ../libAntTweakBar_win32

但是我仍然得到所有glew功能的未定义引用(以及AntTweakBar,但让我们专注于glew) .

référenceindéfinievers__glewGenBuffersréférenceindéfinievers__glewBindBufferéférenceindéfinievers__glewBufferData ...référenceindéfinieversTwInit ...

我做了一个libGLEW_win32.a的十六进制转储,并找到了所有的glew功能,如预期的__前缀 . 该文件长度为670582字节,与该lib一致 . 它是我系统中唯一一个这样命名的文件,因此不存在混淆 .

可能是一个非常基本的遗漏,但我很尴尬地承认我已经有一段时间了,而且我看不出有什么遗漏 .