在64位linux上编译32位libGLEW.so

时间:2013-02-25 07:45:10

标签: compiler-errors 32bit-64bit glew

我正在尝试构建一个32位的libGLEW.so ..我在64位linux上..我已经尝试将-m32添加到Makefile中的CFLAGS ..其中说:

cc -DGLEW_NO_GLU -O2 -Wall -W -Iinclude  -m32 -fPIC  -o tmp/linux/default/shared/glew.o -c src/glew.c
cc -shared -Wl,-soname=libGLEW.so.1.9 -o lib/libGLEW.so.1.9.0 tmp/linux/default/shared/glew.o -L/usr/X11R6/lib64 -L/usr/lib64 -lXmu -lXi -lGL -lXext -lX11 
/usr/bin/ld: i386 architecture of input file `tmp/linux/default/shared/glew.o' is incompatible with i386:x86-64 output
/usr/bin/ld: tmp/linux/default/shared/glew.o: file class ELFCLASS32 incompatible with ELFCLASS64
/usr/bin/ld: final link failed: File in wrong format
collect2: error: ld returned 1 exit status
make: *** [lib/libGLEW.so.1.9.0] Error 1

我不确定这意味着什么?好像它构建了一个32位的.o文件,但试图将它作为64个目标链接?我该如何解决这个问题..我已经看到它添加了-L / usr / X11R6 / lib64和-L / usr / lib64,但我也尝试过运行make SYSTEM = gnu来广告/ usr / X11R6 / lib和/ usr / lib文件夹,但它给了我同样的错误..

1 个答案:

答案 0 :(得分:2)

好的,所以我需要下面列出的软件包。我在Makefile中添加了-m32到CFLAGS和LDFLAGS,只是为了确保我在环境中将-m32设置为CFLAGS,CXXFLAGS和LDFLAGS以确保..然后运行make

libx11-dev:i386
libxext-dev:i386
libxmu-dev:i386
libxi-dev:i386
libgl1-mesa-dev:i386

export CFLAGS='-m32'
export CXXFLAGS='-m32'
export LDFLAGS='-m32'
make