Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > Qt Creator добавление динам. библиотек под Unix


Автор: KillerrrK 7.11.2012, 22:12
Здраствуйте уважаемые)) Хелп ми плиз... Не могу справится с Qt Creator под Ubuntu. Цепляю динамическую библиотеку .so, а компиляка говорит что не знает таких файлов! file not recognized: File format not recognized У друга все ок компилется! Бью голову об стол уже 3-й день. Кругом все по перерыл, но нашёл только, что якобы в настройках, в инструментах чтото не то.... Подскажите плз куда копать... 

Автор: loneybibi 8.11.2012, 02:49
Цитата(KillerrrK @ 7.11.2012,  21:12)
Здраствуйте уважаемые)) Хелп ми плиз... Не могу справится с Qt Creator под Ubuntu. Цепляю динамическую библиотеку .so, а компиляка говорит что не знает таких файлов! file not recognized: File format not recognized У друга все ок компилется! Бью голову об стол уже 3-й день. Кругом все по перерыл, но нашёл только, что якобы в настройках, в инструментах чтото не то.... Подскажите плз куда копать...

Вообще ничего не понятно, что цепляет, куда, зачем ... Что то вроде "прилетели инопланетяне красная тряпка"..  smile 

Автор: borisbn 8.11.2012, 06:15
KillerrrK, м.б. so-шник 64х разрядный, а приложение 32х ? Или наоборот.

Автор: math64 8.11.2012, 07:51
Может быть .so лежит не в путях, в которых Ubuntu их ищет?
Для debug версии путь, по которому нужно искать .so можно вшить в исполняемый файл:
Код

unix:debug:QMAKE_RPATHDIR += $$OUT_PWD/../library/debug/

Но для release такое решение не годится - при переносе на другую машину путь будет другой, а для помещении в "стандартные" места нужны права рута.

Автор: bsa 8.11.2012, 15:48
KillerrrK, вариантов 2. Либо разрядность библиотеки (32 и 64 бита) несовместима с проектом. Либо ты не так добавил библиотеку в проект. Если ты покажешь, как добавлял ее в проект и что именно говорится компилятором (используй тег quote для этого), то мы сможем тебе помочь более конкретно.

Автор: KillerrrK 9.11.2012, 22:20
Извените что долго не отвечал.

В общем цепляю я libarchive. Установил с через apt-get ....
В компиляторе библиотеку цепляю через Добавить библиотеку...->Внешнюю. Сколько не пробовал компилякать ничего не вышло. Все одна и та же ошибка. Да и сам прописывать тоже пробовал.
Сейчас там висит такой код
Код

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../usr/lib64/release/ -larchive
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../../usr/lib64/debug/ -larchive
else:symbian: LIBS += -larchive
else:unix: LIBS += -L$$PWD/../../../../usr/lib64/ -larchive

INCLUDEPATH += $$PWD/../../../../usr/lib64
DEPENDPATH += $$PWD/../../../../usr/lib64


еще так пробовал:
Код

win32:CONFIG(release, debug|release): LIBS += -L$$PWD/../../../../usr/local/lib/release/ -larchive
else:win32:CONFIG(debug, debug|release): LIBS += -L$$PWD/../../../../usr/local/lib/debug/ -larchive
else:symbian: LIBS += -larchive
else:unix: LIBS += -L$$PWD/../../../../usr/local/lib/ -larchive

INCLUDEPATH += $$PWD/../../../../usr/local/include
DEPENDPATH += $$PWD/../../../../usr/local/include


дядька комплиллятор ругает меня так:

Код

02:06:21: Выполняется сборка проекта ZP...
02:06:21: Настройки не изменились, этап qmake пропускается.
02:06:21: Запускается: «/usr/bin/make» -w
make: Entering directory `/home/killerrr/QtSDK/ZP-build-harmattan-Harmattan_Target_-_QEmu_PR1_2__Qt_SDK_______'
/home/killerrr/QtSDK/Madde/targets/harmattan_10.2011.34-1_rt1.2/bin/qmake -spec ../Madde/sysroots/harmattan_sysroot_10.2011.34-1_slim/usr/share/qt4/mkspecs/linux-g++-maemo -o Makefile ../ZP/ZP.pro
make: Leaving directory `/home/killerrr/QtSDK/ZP-build-harmattan-Harmattan_Target_-_QEmu_PR1_2__Qt_SDK_______'
make: Entering directory `/home/killerrr/QtSDK/ZP-build-harmattan-Harmattan_Target_-_QEmu_PR1_2__Qt_SDK_______'
g++ -Wl,-O1 -o ZP main.o qmlapplicationviewer.o moc_qmlapplicationviewer.o    -L/home/killerrr/QtSDK/Madde/sysroots/harmattan_sysroot_10.2011.34-1_slim/usr/lib -L/home/killerrr/QtSDK/ZP/../../../../usr/local/lib/ -larchive -pie -rdynamic -lmdeclarativecache -lQtDeclarative -lQtGui -lQtCore -lpthread 
/home/killerrr/QtSDK/ZP/../../../../usr/local/lib//libarchive.so: file not recognized: File format not recognized
make: Leaving directory `/home/killerrr/QtSDK/ZP-build-harmattan-Harmattan_Target_-_QEmu_PR1_2__Qt_SDK_______'
collect2: ld returned 1 exit status
make: *** [ZP] Error 1
02:06:21: Процесс «/usr/bin/make» завершился с кодом 2.
Возникла ошибка при сборке проекта ZP (цель: Harmattan)
Во время выполнения сборки на этапе «Сборка»


bsa "используй тег quote для этого" - подскажите о каком теге речь? Я с Qt Creator'ом работаю всего неделю (Да и работой то не назвать... Бедную библиотеку замучился ему пихать!). С Ubuntu такая же история... Как вы наверное уже заметили по ругательствам компилятора, я прилажение пишу под meego harmattan.(Ну точнее хочу написать.).

Без этой библы все естественно прекрасно компилится)   

Автор: bsa 9.11.2012, 22:26
Цитата(KillerrrK @  9.11.2012,  23:20 Найти цитируемый пост)
bsa "используй тег quote для этого" - подскажите о каком теге речь?

это тот, вместо которого ты использовал code=nocolor. В итоге, форматирование страницы форума зверско исказилось.
А под какую платформу собрана библиотека? Под Harmattan? Нет? Тогда пересобирай под него.

Автор: KillerrrK 9.11.2012, 22:31
Только что до меня наконец дошло попробовать написать не meego а просто C++ прилажение... И все прекрасно отработало... Может ктонибудь обьяснить мне с чем это связано? И если libarchive нельзя использовать, то может можно какуюнибудь другую zip библиотеку взять чтоб с zip'ами работать?

Добавлено через 1 минуту и 14 секунд
Эммм... А как это я смогу его под харматтан пересобрать?

Автор: loneybibi 10.11.2012, 03:11
Цитата(KillerrrK @ 9.11.2012,  21:31)
Только что до меня наконец дошло попробовать написать не meego а просто C++ прилажение... И все прекрасно отработало... Может ктонибудь обьяснить мне с чем это связано? И если libarchive нельзя использовать, то может можно какуюнибудь другую zip библиотеку взять чтоб с zip'ами работать?

Добавлено @ 22:32
Эммм... А как это я смогу его под харматтан пересобрать?

насколько я помню есть встроенные методы для сжатия\распаковки qCompress qUncopmpress! но не помню точно что они могут! 
А вообще есть библиотека zlib! 
http://www.wiki.crossplatform.ru/index.php/%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_zip_%D0%B0%D1%80%D1%85%D0%B8%D0%B2%D0%B0%D0%BC%D0%B8_%D0%B2_Qt

И на форуме много тем про это.

Автор: KillerrrK 10.11.2012, 07:08
loneybibi спасибо за ссылочку на qzip. zlib также как и libarchive идет исходниками правильно? Но при этом libarchive удобней. И все же хотелось бы узнать как ее под harmattan пересобрать?

Автор: loneybibi 10.11.2012, 16:43
Цитата(KillerrrK @ 10.11.2012,  06:08)
loneybibi спасибо за ссылочку на qzip. zlib также как и libarchive идет исходниками правильно? Но при этом libarchive удобней. И все же хотелось бы узнать как ее под harmattan пересобрать?

Это полностью встроенная возможность Qt, не отдельная библиотека! Я думаю она легко соберется под Harmatan! Все что нужно подключить qzipreader_p.h и qzipwriter_p.h. Далее по примеру как в статье приведены работайте с zip архивами! 

Заголовочные файлы лежат: ../qt/src/gui/text

Прочитайте внимательней статью!

http://www.wiki.crossplatform.ru/index.php/%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0_%D1%81_zip_%D0%B0%D1%80%D1%85%D0%B8%D0%B2%D0%B0%D0%BC%D0%B8_%D0%B2_Qt


Автор: bsa 11.11.2012, 23:06
Цитата(KillerrrK @  10.11.2012,  08:08 Найти цитируемый пост)
Но при этом libarchive удобней. И все же хотелось бы узнать как ее под harmattan пересобрать?

заходишь на сайт, загружаешь исходники, распаковываешь, читаешь вдумчиво файл INSTALL (или README, или еще что), затем следуешь инструкциям, только не забудь указать правильный --target у configure (или компилятор, для других систем сборки).

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)