1

На сервере Solaris, где у меня нет администратора, я собираю различное программное обеспечение и устанавливаю его в $HOME/usr , и он в основном работает. Однако некоторые программы, которые я компилирую таким образом, зависят от libiconv, который я также установил в $HOME/usr/lib . Эти программы не будут работать, пока я не export LD_LIBRARY_PATH=$HOME/usr/lib . Если я этого не сделаю, я получаю сообщение об ошибке, например:

ld.so.1: rsync: fatal: libiconv.so.2: open failed: No such file or directory

Это особенно плохо для rsync, потому что он не всегда работает в среде оболочки, поэтому у меня даже нет возможности использовать LD_LIBRARY_PATH чтобы заставить его работать. Можно ли скомпилировать мои программы так, чтобы мне не нужно было устанавливать LD_LIBRARY_PATH для их запуска?

1 ответ1

2

Вы хотите посмотреть rpath . С помощью gcc вы передаете -Wl,-rpath,/directory/with/library в ссылку compile/. Я думаю, что с компилятором Solaris флаг был -R/directory/with/library , но у меня нет машины Solaris для проверки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .