2015-04-27 2 views
0

Я пытаюсь построить библиотеку в solaris с помощью gcc и продолжать бить wrong ELF class: ELFCLASS64. Я googled и узнал, что это связано с попыткой связать с 32-битным файлом, который компилируется в виде 64-битной библиотеки. Но я убедился, что я создаю rakesh.o как 64-битный вариант -m64 компилятора.gcc ошибка неправильный ELF класс: ELFCLASS64, несмотря на наличие -m64 флаг

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

Что я здесь делаю неправильно? Это связано с тем, что какой-либо флаг компилятора использует или отсутствует?

+4

Я думаю, что -m64 необходим и для компоновщика. –

+0

@ RudolfsBundulis: Пятно на. Я пропустил вариант -m64 на моем компоновщике. Это проблема .. Большое спасибо. Сейчас он работает :) – vibz

+0

Хорошо, я добавлю ответ :) –

ответ

3

Вы должны указать флаг -m64 для компоновщика, чтобы он знал, какого типа бинарников ожидать.

Смежные вопросы