gcc错误错误的ELF类:ELFCLASS64,尽管有-m64标志

时间:2015-04-27 10:16:12

标签: c++ unix gcc solaris elf

我一直在尝试使用gcc在solaris中构建一个库,并继续发出wrong ELF class: ELFCLASS64错误。我用Google搜索并发现这是因为尝试链接32位文件,该文件编译为64位库。但我确保使用-m64编译器选项将rakesh.o构建为64位。

/rdcomb/run/pd/gcc/32-bit/4.4.1/bin/g++ -Wall -W -Wunreachable-code -Winline -Wshadow -Weffc++ -Wfloat-equal -Wunsafe-loop-optimizations -Wcast-qual -Wdisabled-optimization -shared -fPIC -m64 -c -DDEBUG -I../include -I/home/radha/ali/trunk/src/top//src/ -I../../../top/include -g -o Suni386/dll/rakesh.o rakesh.cpp

xmake: /home/radha/ali/trunk/src/tools/bin/Suni386/xlink -g -o Suni386/dll/rakesh -p../../../top/gtcpp/Suni386/dll -lgtcpp   -lsocket -lnsl Suni386/dll/rakesh.o

ld: fatal: file Suni386/dll/rakesh.o: wrong ELF class: ELFCLASS64
ld: fatal: file processing errors. No output written to Suni386/dll/rakesh
collect2: ld returned 1 exit status

/rdcomb/run/pd/gcc/32-bit/4.4.1/bin/g++ -g -o Suni386/dll/rakesh -L../../../top/gtcpp/Suni386/dll Suni386/dll/rakesh.o -lgtcpp -lsocket -lnsl
xmake: /home/radha/ali/trunk/src/tools/bin/Suni386/xlink: error 1 (0x1)

我在这里做错了什么?是否由于某些编译器标志使用或丢失了?

1 个答案:

答案 0 :(得分:3)

您必须为链接器提供-m64标志,以便它知道期望的二进制文件类型。