Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2013, 07:55   #1
Max1548
Пользователь
 
Регистрация: 28.05.2011
Сообщений: 99
По умолчанию Линковка 32-бит библиотеке в linux-64

Итак, всем доброго времени суток!
Надо слинковать одну библиотеку, если компилировать(линковать) в 64-бита:

Код:
[bymsx@ByMsx-K53SM mysql_rel]$ make all
gcc -c -O3 -w -DLINUX -Wall -I../SDK/amx/ ../SDK/amx/*.c
g++ -c -O3 -w -DLINUX -Wall -I../SDK/amx/ ../SDK/*.cpp
g++ -c -O3 -w -DLINUX -Wall -I../SDK/amx/ main.cpp
g++ -c -O3 -w -DLINUX -Wall -I../SDK/amx/ source/*.cpp
g++ -O2 -fshort-wchar -shared -o "../mysql.so" *.o ./mysql_lib/libmysqlclient.a -pthread
/usr/bin/ld: CMySQLHandler.o: relocation R_X86_64_32 against `.rodata.str1.8' can not be used when making a shared object; recompile with -fPIC
CMySQLHandler.o: could not read symbols: Bad value
collect2: error: ld returned 1 exit status
make: *** [all] Error 1
Ставлю флаг -m32(чтобы компилировать в 32) в makefile:

http://pastebin.com/605jv95Y

Что делать? Пробовал только изврат с флажком м32 и fPIC, в результате с обоими полная ***ца.

MakeFile(оригинальный): http://pastebin.com/6N6SuS5b
OS - [||-----------------------------------------------] забил, дойдя до драйвера памяти
Max1548 вне форума Ответить с цитированием
Старый 16.10.2013, 13:33   #2
rlib
Форумчанин
 
Аватар для rlib
 
Регистрация: 22.05.2012
Сообщений: 352
По умолчанию

(1) Проверте, что все линкуется на 32битном линуксе.
(2) Если (1) не проходит, проверте, что линкуете 32битные библиотеки. Проверить, является ли библиотека 32-х или 64-х битной, используйте команду фаил, например:

file /usr/lib/libkjs.so.4.10.5
/usr/lib/libkjs.so.4.10.5: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=0x6172167555bdc4385b6d3a283dac6cd4 e2719785, stripped
rlib вне форума Ответить с цитированием
Старый 16.10.2013, 19:06   #3
Max1548
Пользователь
 
Регистрация: 28.05.2011
Сообщений: 99
По умолчанию

Цитата:
Сообщение от rlib Посмотреть сообщение
(1) Проверте, что все линкуется на 32битном линуксе.
(2) Если (1) не проходит, проверте, что линкуете 32битные библиотеки. Проверить, является ли библиотека 32-х или 64-х битной, используйте команду фаил, например:

file /usr/lib/libkjs.so.4.10.5
/usr/lib/libkjs.so.4.10.5: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked, BuildID[sha1]=0x6172167555bdc4385b6d3a283dac6cd4 e2719785, stripped
1) Извиняюсь, не указал, точнее указал, но только в заголовке темы, что у меня linux 64bit(Arch)
OS - [||-----------------------------------------------] забил, дойдя до драйвера памяти
Max1548 вне форума Ответить с цитированием
Старый 17.10.2013, 11:18   #4
rlib
Форумчанин
 
Аватар для rlib
 
Регистрация: 22.05.2012
Сообщений: 352
По умолчанию

Цитата:
Сообщение от Max1548 Посмотреть сообщение
1) Извиняюсь, не указал, точнее указал, но только в заголовке темы, что у меня linux 64bit(Arch)
я понимаю, но у вас проблема слинковать 32 бита на 64битной системе. Проверьте, что все линкуется на 32битной системе. Может проблема вовсе не в битовой совместимости.
rlib вне форума Ответить с цитированием
Старый 18.10.2013, 22:43   #5
Max1548
Пользователь
 
Регистрация: 28.05.2011
Сообщений: 99
По умолчанию

Цитата:
Сообщение от rlib Посмотреть сообщение
я понимаю, но у вас проблема слинковать 32 бита на 64битной системе. Проверьте, что все линкуется на 32битной системе. Может проблема вовсе не в битовой совместимости.
А в чём ещё может быть проблема?
OS - [||-----------------------------------------------] забил, дойдя до драйвера памяти
Max1548 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
функция fcntl в библиотеке glibs linux. лёля 92 Linux (Ubuntu, Debian, Red Hat, CentOS, Mint) 0 06.11.2012 14:02
ассемблерные функции на с,линковка molan Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 09.05.2011 21:19
[c++] [портирование linux->windows] линковка staseg Общие вопросы C/C++ 0 23.11.2009 18:36
Линковка... GHOST_Kasper Работа с сетью в Delphi 13 21.11.2007 16:06