Программа, которую я использую, может быть установлена только с помощью специального установщика (бесплатная версия IDA). Я установил его в своем домашнем каталоге, все работает отлично.
Теперь я заметил, что при проверке программы с помощью ldd: она поставляется со своими собственными библиотеками Qt, которые являются местами в качестве общих библиотек в своем установочном каталоге (поэтому в том же каталоге находится его основной исполняемый файл, а не / usr / lib или аналогичный).
$ ldd ida64
linux-vdso.so.1 => (0x00007ffec5fb9000)
libida64.so => /home/asdf/idafree-7.0/./libida64.so
libQt5PrintSupport.so.5 => /home/asdf/idafree-7.0/./libQt5PrintSupport.so.5
libQt5Widgets.so.5 => /home/asdf/idafree-7.0/./libQt5Widgets.so.5
....
(install dir = /home/asdf/idafree-7.0/)
Теперь мне интересно: как это делается? Я запускаю программу напрямую без магии LD_LIB_PATH.
Простое объяснение, как запустить исполняемый файл, требующий уникального LD_LIBRARY_PATH, например. путь к libs в текущем каталоге /:
Short: export LD_LIBRARY_PATH=., где точка (.) означает «текущий каталог»
Обычно также система LD_LIBRARY_PATH (должна ): export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
«Жесткое кодирование», например ida64: Функция в исполняемом файле, который будет запущен первым, устанавливает уникальный LD_LIBRARY_PATH. ... Другой пример: firefox.
Простое объяснение, как запустить исполняемый файл, требующий уникального LD_LIBRARY_PATH, например. путь к libs в текущем каталоге /:
Short: export LD_LIBRARY_PATH=., где точка (.) означает «текущий каталог»
Обычно также система LD_LIBRARY_PATH (должна ): export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH
«Жесткое кодирование», например ida64: Функция в исполняемом файле, который будет запущен первым, устанавливает уникальный LD_LIBRARY_PATH. ... Другой пример: firefox.