我在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__glewGenBuffers
référenceindéfinievers__glewBindBuffer
référenceindéfinievers__glewBufferData...
référenceindéfinieversTwInit ...
我做了一个libGLEW_win32.a的十六进制转储,并找到了所有的glew功能,如预期的__前缀。该文件长度为670582字节,与该lib一致。它是我系统中唯一一个这样命名的文件,因此不存在混淆。
可能是一个非常基本的疏忽,但我很尴尬地承认我已经有一段时间了,而且我看不出有什么遗漏。