Como recompilar um programa para que ele não exija a configuração de LD_LIBRARY_PATH para executar?

1

Em um servidor solaris onde não tenho admin, estou compilando vários softwares e instalando em $HOME/usr , e está funcionando principalmente. No entanto, alguns dos programas que eu compilo dessa maneira dependem do libiconv, que eu também instalei em $HOME/usr/lib . Esses programas não serão executados a menos que eu export LD_LIBRARY_PATH=$HOME/usr/lib . Se eu não fizer isso, recebo um erro como o seguinte:

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

Isso é especialmente ruim para o rsync, porque ele nem sempre opera em um ambiente de shell, então eu nem tenho a opção de usar LD_LIBRARY_PATH para fazê-lo funcionar. É possível compilar meus programas de tal forma que eu não precise definir LD_LIBRARY_PATH para que eles sejam executados?

    
por Ryan Thompson 04.11.2010 / 21:53

1 resposta

2

Você deseja procurar rpath . Com o gcc, você passa -Wl,-rpath,/directory/with/library para a compilação / link. Eu acho que com o compilador Solaris o sinalizador era -R/directory/with/library , mas não tenho nenhuma máquina Solaris para verificar.

    
por 04.11.2010 / 22:18