2011-12-20 3 views
1

Люди,Linux - Как исправить общие библиотеки в исполняемом файле?

Я создал исполняемый файл на основе Linux. Я хотел бы настроить его так, чтобы пользователи могли просто загружать и использовать. Пока пользователи имеют x86-версию Ubuntu 11.xx, они должны просто иметь возможность запускать приложение.

Проблема, которую я пытаюсь выяснить, заключается в том, как бороться с разделяемыми библиотеками. Например, для моего исполняемого файла может потребоваться libxxx.so.23, но у пользователя может быть libxxx.so.22. Для функциональности, которую я использую, приложение будет работать с любой версией файла sofile.

Глядя на аналогичный пост, совет заключался в создании новой символической связи между двумя версиями.

Проблема в том, что я не могу ожидать, что пользователи будут сидеть и создавать символические ссылки для всех зависимостей.

Должен быть лучший способ создать простой исполняемый файл, готовый для массового распространения. Очевидно, что пакеты, загруженные с помощью apt-get, по-видимому, автоматически справляются с этой проблемой.

Я ценю вашу помощь.

С уважением, Peter

+0

Н.Б., что делает символические связи между различными версиями общих библиотек не будет работать надежно. –

ответ

0

Я бы предложил создать статическую сборку для вашего приложения. Ссылка с libxxx.a (Статическая библиотека), а вы создаете сборку.

Or you can create the .deb (for ubuntu and debian) package. 
It will resolve the library dependencies. 

По SIVA K

2

скомпилировать пакет статически, так что это не зависит от какого-либо конкретного .so-файла (ов)

пакетов в метких и подобных бинарных на основе менеджеров пакетов, как правило, зависят от точной версии libs, поэтому, например, nmap-2.2.3 зависит от libpcap-1.1.2, поэтому он всегда ссылается на то же самое .so.

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