2011-07-24 63 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)。