Você pode verificar a opção -f
do ldconfig :
-f conf
Use conf instead of /etc/ld.so.conf.
Se você executar:
ldconfig -f custom.conf
com usuário com privilégios suficientes, ele modificará /etc/ld.so.cache
. ld
lê /etc/ld.so.cache
e não acho que você consiga ler um arquivo diferente.
Como você não quer modificar os arquivos do sistema, você pode fazer o seguinte:
gcc -W -Wall -L/path_to_your_library -lyour_library test.c -o testo
para construir seu testo.c
Então:
export LD_LIBRARY_PATH=/path_to_your_library
para executá-lo, embora a configuração de LD_LIBRARY_PATH
ajude na depuração e que experimente uma versão mais nova de uma biblioteca, seu uso na configuração e na implantação do ambiente de desenvolvimento geral seja considerado inválido. Mais você pode conferir aqui .
Outra abordagem poderia estar usando rpath
:
unset LD_LIBRARY_PATH
gcc -L/path_to_your_library -Wl,-rpath=/path_to_your_library -W -Wall -o testo testo.c -lyour_library
Com o método rpath
, cada programa consegue listar seus locais de biblioteca compartilhada independentemente. Desvantagens: as bibliotecas compartilhadas devem ser instaladas em um local fixo. Também não testei, mas pode haver problemas se a biblioteca se referir a uma montagem NFS.