Используют ли приложения обычно динамически подключаемые библиотеки?

Это должно помочь:

sort file1 | uniq -c > file2
1
01.11.2015, 01:35
2 ответа

Команда ldd сообщит, использует ли ваш двоичный файл разделяемые библиотеки. Для тех, кто не принадлежит к пакету распространения, вы должны либо указать пользователям вашего пакета, где их загрузить, либо объединить библиотеки в свой пакет, что, безусловно, является более простым способом для пользователей. при условии, что лицензия библиотеки позволяет вам это делать.

Если вы объединяете их, убедитесь, что создаваемые вами двоичные файлы найдут эти библиотеки с помощью LD_RUN_PATH во время компиляции, что является лучшей практикой, чем полагаться на LD_LIBRARY_PATH для исправления поврежденных исполняемых файлов.

Подробнее см. http://www.eyrie.org/~eagle/notes/rpath.html .

6
29.04.2021, 00:44
​​

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

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

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

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

3
29.04.2021, 00:44

Теги

Похожие вопросы