LINUX.ORG.RU

relocation R_X86_64_32S


0

1
rm -f libHybrid.so.1.0.0 libHybrid.so libHybrid.so.1 libHybrid.so.1.0
g++ -m64 -Wl,-O1 -shared -Wl,-soname,libHybrid.so.1 -o libHybrid.so.1.0.0 build/MainWindow.o build/moc_MainWindow.o   -L/usr/lib/x86_64-linux-gnu -lQtGui -lQtCore -lpthread  
/usr/bin/ld: build/MainWindow.o: relocation R_X86_64_32S against `vtable for MainWindow' can not be used when making a shared object; recompile with -fPIC
build/MainWindow.o: could not read symbols: Bad value
collect2: выполнение ld завершилось с кодом возврата 1
make: *** [../libHybrid.so.1.0.0] Ошибка 1

Прочёл что должны быть установлены быть добавлены к CXXFLAGS и CFLAGS -fPIC . Но они у меня добавлены. Теряюсь в чём принина. PS. Реализую этот мануал. http://habrahabr.ru/blogs/qt_software/120479/


Но они у меня добавлены

g++ -m64 -Wl,-O1 -shared -Wl,-soname,libHybrid.so.1 -o libHybrid.so.1.0.0 build/MainWindow.o build/moc_MainWindow.o -L/usr/lib/x86_64-linux-gnu -lQtGui -lQtCore -lpthread

ты что-то где-то пропустил. не добавлены

ckotinko ☆☆☆ ()
Ответ на: комментарий от Jetty

у тебя линкер ругается.

/usr/bin/ld: build/MainWindow.o: relocation R_X86_64_32S against `vtable for MainWindow' can not be used when making a shared object; recompile with -fPIC

и ошибка чисто линкеркая - компилеру похеру на pic

тыкай в LDADD опцию

ckotinko ☆☆☆ ()
Ответ на: комментарий от ckotinko

и ошибка чисто линкеркая - компилеру похеру на pic
тыкай в LDADD опцию

Это не правда. Именно компилятору надо указать -fPIC

r2d2 ()
Ответ на: комментарий от r2d2

Весь выхлом в первом посту. там кода то всего тьфу и растереть. Смысл в том чтоб скомпилировать библиотеку Qt. вот фаил проэкта

 TEMPLATE = lib TARGET = ../Hybrid CONFIG += qt QT += core gui

UI_DIR = build RCC_DIR = build MOC_DIR = build OBJECTS_DIR = build

HEADERS += MainWindow.h SOURCES += MainWindow.cpp
 

вот с таким файлом спокойно компилиться

 TEMPLATE = app CONFIG += qt QT += core gui

UI_DIR = build RCC_DIR = build MOC_DIR = build OBJECTS_DIR = build

HEADERS += MainWindow.h SOURCES += MainWindow.cpp Main.cpp 

vsrmis ()
Ответ на: комментарий от r2d2

РЕШЕНО

Спасибо, получилось. Перомпилировал удалив всё кроме исходников. Дело в том что раньше было скомпилировано с параметрами проекта app. А когда я изменил на lib вилимо он не собирался перекомпилировать MainWindow.o, но использовать его у него не получалось.

vsrmis ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.