2016-09-18 12 views
0

Как установить исполняемые файлы для поиска общей библиотеки в ее одном каталоге в компиляции, Я поместил исполняемый файл и связанные с ним библиотеки .so в том же directory, вместо changubg LD_LIBRARY_PATH или /etc/ld.so.conf, Можно ли установить -rpath как переменную, которая является каталогом, где хранится файл executalbe, а переменная не является определенным путем, она может меняться.Как использовать -rpath в компиляции для установки исполняемых файлов для поиска общей библиотеки в том же каталоге

ответ

1

Можно ли установить -rpath в качестве переменной

Да вы хотите DT_RPATH быть установлен в $ORIGIN, например, так:

gcc main.c -Wl,-rpath='$ORIGIN' -lfoo -lbar 

Примечание: вам нужно одно- qoute $ORIGIN, чтобы предотвратить расширение оболочки - RPATHmust содержит знак $.

Другой вариант заключается в соединении следующим образом:

gcc main.c ./libfoo.so ./libbar.so 

Это будет работать только если libfoo.so и libbar.so сделать не имеют DT_SONAME набор, и в целом является низшим решением. Я просто упоминаю его здесь для полноты.

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

  • Нет связанных вопросов^_^