2013-02-25 273 views
2

我試圖構建一個32位libGLEW.so ..我在64位Linux上..我試過在Makefile中向CFLAGS添加-m32。其中說:在64位Linux上編譯32位libGLEW.so

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文件夾,但它給了我相同的錯誤..

回答

2

好的,所以我需要下列軟件包。我在Makefiles中將-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 
相關問題