бинарный Linux, независимый от разделяемых библиотек - PullRequest
4 голосов
/ 27 января 2011

У меня есть программа на C ++, которая зависит от довольно большого количества библиотек (некоторые распространенные системные библиотеки, такие как libjpeg, некоторые персональные библиотеки, которые не установлены во всей системе).Программа хорошо компилируется на машине A (Debian Squeeze).Я хотел бы запустить программу на машине B (Ubuntu Maveric) и машине C (Arch).Предположим, что обе машины B + C являются чрезвычайно минимальными установками.Не ожидайте найти там ЛЮБЫЕ библиотеки, которые использует моя программа, и если они есть, они не совпадают с версией.

Есть ли какая-либо программа, которая может сканировать мою программу на ВСЕ зависимости (используя ldd или что-то еще)собрать все эти зависимости и сгенерировать скрипт, который скажет бинарному файлу использовать их и только эти библиотеки, которые есть в любой другой системе?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 27 января 2011

Получается, что ответом на ваш вопрос является статическая связь, скажем, с g ++ -static.

2 голосов
/ 27 января 2011

Я не уверен на 100%, что понимаю ваш вопрос, но похоже, что вы хотите отправить библиотеки вместе с вашим пакетом и использовать LD_LIBRARY_PATH, чтобы заставить компоновщик заглянуть в ваш поставленный каталог библиотеки прежде всего.

Если есть что-то еще, я могу пересмотреть свой ответ, так как у меня есть некоторый опыт с этим.Просто хочу убедиться, что я знаю, о чем ты просишь.

...