Общий путь к библиотеке как исполняемый каталог

Я использую очень мелкий текст SciTE и простой текстовый редактор.

13
задан CuppM 23 November 2009 в 20:09
поделиться

2 ответа

Вам нужно $ ORIGIN в вашем RPATH с помощью соответствующей опции ld или другого инструмента Дарвина. См. this и this .

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

Обновить: Вы можете увидеть, что компоновщик фактически поместил в ваш исполняемый файл с помощью

readelf -d /path/to/exe | grep RPATH

Вот как должен выглядеть результат:

 0x0000000f (RPATH)              Library rpath: [$ORIGIN]
18
ответ дан 1 December 2019 в 22:57
поделиться

Оберните вашу программу в сценарий оболочки:

#!/bin/sh

PROGRAM_DIRECTORY="`dirname "$0"`"
export LD_LIBRARY_PATH="$PROGRAM_DIRECTORY"

"$PROGRAM_DIRECTORY/program_executable" "$@"

Если вы запустите этот сценарий (вместо вашего исполняемого файла), ваша программа установит ссылку.

2
ответ дан 1 December 2019 в 22:57
поделиться
Другие вопросы по тегам:

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