На 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
Это expecially плохо для rsync, потому что он не всегда работает в среде оболочки, таким образом, у меня даже нет опции использования LD_LIBRARY_PATH
заставить его работать. Действительно ли возможно скомпилировать мои программы, таким образом, что я не должен устанавливать LD_LIBRARY_PATH
чтобы они работали?
Вы хотите искать rpath
. С gcc Вы передаете -Wl,-rpath,/directory/with/library
к компиляции/ссылке. Я думаю с компилятором Соляриса, которым был флаг -R/directory/with/library
, но у меня нет машины Соляриса для сверений.