Я создал приложение на C ++, которое связано со сторонними общими библиотеками, такими как opencv. Теперь мне потребуется упаковать это приложение и распространить его как tar-файлы среди пользователей, не имея при этом возможности устанавливать и компилировать сторонние зависимости. Компиляция библиотек, таких как opencv, в linux / Ubuntu — такой болезненный процесс.
Теперь я хочу выяснить, какие именно модули библиотеки связаны с исполняемым файлом, и включить их в дистрибутив tar. Я не хочу включать всю библиотеку, так как размер файла tar будет взорван.
Достаточно ли будет просто включить библиотеки, обнаруженные ldd
команда? Любое руководство или подсказка / отправная точка будут полезны
По определению «ldd — выводить зависимости общего объекта». Кроме того, я лично подтверждаю, что это работает, поскольку я всегда использую это в профессиональных проектах.
Также вы можете проверить тот же вопрос и ответы здесь.
https://unix.stackexchange.com/questions/120015/how-to-find-out-the-dynamic-libraries-executables-loads-when-run
ldd
Команда может использоваться, чтобы показать, с какими библиотеками связан исполняемый файл (или библиотека).
Я советую, что это работает для меня (после добавления всех зависимостей с помощью ldd), чтобы установить новый linux в virtualBox и попробовать дистрибутив tar, поскольку я был бы конечным пользователем. Таким образом, вы можете проверить, что все в порядке.