2011-07-24 81 views
0

我試圖在Fedora 15 x64上編譯一個C++程序。並得到了錯誤:G ++錯誤ELF CLASS錯誤

./game: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory. 

我讀的地方,我需要做的就是安裝glibc.i686

我安裝的,現在另一個錯誤甚至使用帶有G ++

的「-m64」選項後到來
error while loading shared libraries: libplayer_1.so: wrong ELF class: ELFCLASS64 

這裏是我的makefile是什麼樣子:

CONC_INC = ./include \ 
      -I../include 
APP = ./src/player_1.cxx 


All : 
    g++ -m64 -Wall -g -fPIC -I$(CONC_INC) -c $(APP) 
    g++ -m64 -shared -W1 -o libplayer1.so.1.0 *.o 
    cp libplayer1.so.1.0 ../lib/libplayer_1.so.1.0 
    ln -sf ../lib/libplayer_1.so.1.0 ../lib/libplayer_1.so 
    ln -sf ../lib/libplayer_1.so.1.0 ../lib/libplayer_1.so.1 
clean: 
    \rm -f *.so.* *.o 

回答

3

的原稿因爲您沒有安裝32位動態鏈接程序(/lib/ld-linux.so.2),因此您曾暗示./game是一個32位動態鏈接的可執行文件,該程序無法運行;安裝32位glibc包固定的。

如果./game是一個32位可執行文件,它需要libplayer_1.so作爲動態庫,如果libplayer_1.so是64位,這是新的錯誤告訴你的,它不會工作。

嘗試將庫構建爲32位而不是(-m32而不是-m64)。