2016-04-22 3 views
0

У меня есть приложение на C++, которое связано с сторонними разделяемыми библиотеками, такими как opencv. Теперь мне нужно будет упаковать это приложение и перераспределить его как файлы tar, без необходимости их установки и компиляции зависимостей сторонних разработчиков. Компиляция библиотек, таких как opencv в linux/Ubuntu, является таким болезненным процессом.C++ Packaging: Поиск зависимостей в общей библиотеке

Теперь я хочу найти, что все конкретные модули библиотеки связаны с исполняемым файлом и включают их в дистрибутив tar. Я не хочу включать всю библиотеку, так как размер дуги будет взорван.

Достаточно ли достаточно, чтобы включить библиотеки, обнаруженные командой ldd? Любая подсказка или подсказка/начальная точка будут полезны

+0

Не забудьте проверить, разрешено ли вам перераспределять их, считывая их лицензии. [OpenCV позволяет это сделать] (http://opencv.org/license.html). – Berriel

ответ

1

По определению «ldd - печать общих объектов». Кроме того, я лично подтверждаю, что он работает, поскольку я всегда использую его в профессиональных проектах.

Также вы можете задать тот же вопрос и ответы здесь. https://unix.stackexchange.com/questions/120015/how-to-find-out-the-dynamic-libraries-executables-loads-when-run

1

Команда ldd может использоваться для отображения библиотек, к которым связана исполняемая (или библиотека).

1

Я советую, что он работает для меня (после добавления всех зависимостей с ldd) заключается в установке нового linux в virtualBox и попытке распространения tar, поскольку я буду конечным пользователем. Таким образом, вы можете проверить, что все в порядке.

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