Não sei ao certo como você está abrindo libssl
- suponho dlopen()
?
A pesquisa em uma lista codificada de caminhos de diretório para uma biblioteca parece bastante frágil - seria melhor deixar o vinculador dinâmico fazer o trabalho para você. Talvez a análise da saída de ldconfig -p
valha a pena tentar? Em um sistema Debian, vejo o seguinte:
$ ldconfig -p|grep ssl
libssl.so.1.1 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libssl.so.1.1
libssl.so.1.0.2 (libc6,x86-64) => /usr/lib/x86_64-linux-gnu/libssl.so.1.0.2
Em um sistema RHEL 7.4:
$ ldconfig -p|grep ssl
libssl3.so (libc6,x86-64) => /lib64/libssl3.so
libssl.so.10 (libc6,x86-64) => /lib64/libssl.so.10
Note que no sistema Debian a biblioteca está em /usr/lib/x86_64-linux-gnu
, enquanto que no sistema RHEL está em /lib64
(observe também os nomes de bibliotecas amplamente variáveis). A menos que você use algo como a saída de ldconfig
, você precisará pesquisar todos esses caminhos específicos da distribuição se planeja "trabalhar em qualquer sistema Linux". Evidentemente, os caminhos do diretório estão listados em /etc/ld.so.conf
, mas acho que usar ldconfig
provavelmente ainda é mais fácil.