Про Shared Object

Linux qt lib so

У меня возникла вторичная проблема.
У меня есть приложение в и динамическая библиотека на QT (используют libQtCore.so.4 и libQtNetwork.so.4)

Программа и динамическая библиотека:
./QProgram
./Plugins/Plugin1.so

Обе либы положил в папку с приложением:
./libQtCore.so.4
./libQtNetwork.so.4

Приложение стало выдавать ошибку при динамической загрузке либы.
Я думаю, либа не может найти QT-шные либы, скопировал(потом сделаю ссылки) QT-шные либы в папку ./Plugins - не помогло.
Что посоветуете?


Примечание:
человекпакет, просто меня(и я думаю всех) бесит, что кутэ-шные либы
различающиеся второй (и даже третьей!!!) цифрой версии не совместимы . . .
А значит лучше тащить с программой её либы . . .

Примечание:
katzyn, Метод
bool QLibrary::load() - http://doc.trolltech.com/4.6/qlibrary.html#load
возвращает false

Ну это единственная причина по которой, я думаю, библиотека перестала подключаться.
В системе, где либы закинул в /usr/lib .... всё работает, но не хотелось забрасывать туда либы.

Примечание:
Программу сейчас запускаю вот так:
env LD_LIBRARY_PATH=. ./QProgram

Примечание:
Товарищи, щас проверил:
ldd ./Plugins/Plugin1.so
обнаружилось, что к либе также нужна libQtXml.so.4
Сейчас закину её, надеюсь ошибка устранится.

Примечание:
katzyn, просто сейчас поставлю, а кто-нибудь через пол-года обновит . . .
моя прога перестанет работать . . . и станут искать меня чтобы я её перекомпилил . . .
Гораздо удобнее взять все либы в папку с прогой. Автономность в некотором роде.

По поводу совместимости подверсий кутэ - у меня отдельный зуб.
Это адская подстава. Например хочешь сделать гибкое приложение с множеством сторонних плагинов.
Так это все разрабы сторонние должны учитывать в какой версии кутэ компилилась прога.
К каждой версии проги - придётся заново пересобирать все плагины . .. жесть одним словом
Ответы:
> Приложение стало выдавать ошибку при динамической загрузке либы.
Какую именно ошибку? Они совершенно разные могут быть и по разным причинам.
Ну есть файлик /etc/ld.so.conf
И вообще, почему бы qt не поставить в систему?
Ошибку озвуч. Их много. Вообще в Лине не принято класть либы вместе с приложением. И даже держать в одном пакете, если только либа не персонально для этого приложения и более ни к чему не пригодна.
Для совместимости либ хоть какой версии есть менеджеры пакетов. Пишешь жёсткую зависимость, и всё. А то по умолчанию всё равно берётся либа из системы, а уж потом из папки с программой.
> различающиеся второй (и даже третьей!!!) цифрой версии не совместимы
Не встречал такого, хотя всё может быть. Старые проприетарные программы на более новых версиях QT вполне себе прилично работали, сколько помню. А вот родные из поставки зачастую такая дрянь — то букв русских нет, то ещё что-нибудь эдакое. Кто их только так собирает? Из репозиториев от своей системы как-то надёжнее (смотря, конечно, что ещё за система). Хотя и приходится для них порой дополнительно пакет с 32-битными библиотеками на 64-битных машинках держать.


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.