g++错误ELF类错误

G++ wrong ELF CLASS Error

本文关键字:错误 ELF g++      更新时间:2023-10-16

我试图在Fedora 15x64上编译一个c++程序。并得到错误:

./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

您的原始问题表明./game是一个32位动态链接的可执行文件,由于未安装32位动态链接器(/lib/ld-linux.so.2)而无法运行;安装32位glibc包修复。

如果./game是一个32位的可执行文件,需要libplayer_1.so作为动态库,如果libplayer_1.so是64位的,它将无法工作,这就是新的错误告诉你的。

尝试将库构建为32位(-m32而不是-m64)。