Como ligar a biblioteca OpenSSL no macOS usando o gcc?

1

Eu tenho o OpenSSL instalado através do gerenciador de pacotes Homebrew. Eu encontrei a biblioteca e os arquivos de cabeçalho que eu preciso.

Os cabeçalhos são:

/usr/local/Cellar/openssl/1.0.2h_1/include/openssl
/usr/local/Cellar/openssl/1.0.2j/include/openssl
/usr/local/Cellar/openssl/1.0.2k/include/openssl

Os arquivos da biblioteca são:

/usr/lib/libssl.0.9.7.dylib
/usr/lib/libssl.0.9.8.dylib
/usr/lib/libssl.dylib

Eu tentei vários comandos gcc para tentar vincular a biblioteca OpenSSL, incluindo:

gcc md5.c -I/usr/local/Cellar/openssl/1.0.2k/include -lssl
gcc md5.c -I/usr/local/Cellar/openssl/1.0.2k/include -llibssl
gcc md5.c -I/usr/local/Cellar/openssl/1.0.2k/include -llibssl.dylib
gcc md5.c -I/usr/local/Cellar/openssl/1.0.2k/include -llibssl.0.9.8
gcc md5.c -I/usr/local/Cellar/openssl/1.0.2k/include -llibssl.0.9.8.dylib

Todos eles produzem um erro "Arquivo não encontrado" ou um erro de vinculador.

Qual é a maneira correta de fazer isso?

    
por Legend of Overfiend 22.02.2017 / 17:29

1 resposta

0

Parece que você está tentando vincular-se às bibliotecas openssl instaladas com o sistema operacional, em vez das bibliotecas homebrew. Tente encontrar onde o homebrew instalou as bibliotecas 1.0.2k.

find /usr/local/Cellar/ -name "libssl.*"

Você deve encontrar algo como / usr / local / Cellar / _path_of some_sort / libssl.a. Tente vincular-se a essa biblioteca em vez das que estão em / usr / lib. As bibliotecas / usr / lib são antigas e não são compatíveis com os arquivos de cabeçalho que você está usando.

gcc md5.c -I/usr/local/Cellar/openssl/1.0.2k/include -L/usr/local/Cellar/path_of_some_sort/ -lssl -lcrypto -o md5
    
por 22.02.2017 / 19:00