gcc erro de compilação: não é possível encontrar -lssl

1


Ei tudo,
Eu estou tentando construir um projeto chamado RamCloud em CentOS Linux release 7.4.1708
este projeto especificamente requer gcc 4.9 e com meus centos eu só tinha gcc 4.8 então eu tive que:

  • remova completamente o gcc4.8 do meu sistema sudo yum remove --skip-broken gcc
  • instale o scl sudo yum install centos-release-scl
  • instalar devtoolset-3 que inclui gcc4.9 sudo yum install devtoolset-3
  • ative o devtoolset scl enable devtoolset-3 bash

que ajudou com alguns erros que eu tinha antes, mas agora, quando eu tento executar sudo make -j12 para construir o projeto, eu recebo erros relacionados com o devtoolset
é assim que o erro se parece:

/opt/rh/devtoolset-3/root/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/ld: cannot find -lssl /opt/rh/devtoolset-3/root/usr/libexec/gcc/x86_64-redhat-linux/4.9.2/ld: cannot find -lcrypto collect2: error: ld returned 1 exit status
make: [obj.master/apps/client] Error 1
make: Waiting for unfinished jobs....

Eu não tenho certeza, mas eu acho que é um problema de ligação, alguém já encontrou isso antes?

    
por Mheni 09.02.2018 / 20:04

1 resposta

3

Ambos os erros estão relacionados com as bibliotecas de desenvolvimento do OpenSSL que não estão sendo instaladas (o -lssl é um caminho bastante inoperante).

O -lssl pode ser dividido em -l , que significa "link com", e ssl , que é a biblioteca desejada que o gcc é solicitado a vincular. Geralmente, o arquivo a ser vinculado é denominado lib<whatever_comes_after_the_-l>.a e precisa dos cabeçalhos. O arquivo e os cabeçalhos estão nos pacotes dev (baseado no Debian) ou devel (baseado no RPM). Aqui, ssl - > openssl, mas você precisa de pacotes de desenvolvimento, então é openssl-dev ou openssl-devel.

Agora você pode procurar o pacote que contém lib<whatever_comes_after_the_-l>.a . Para distribuições baseadas no Debian, eu instalo o apt-file .

No Debian:

apt-file update
apt-file search libssl.a 

No CentOS:

rpm -q -f libssl.a

No Debian, para instalá-los, faça:

sudo apt-get install openssl-dev

No CentOS, para instalá-los, faça:

sudo yum install openssl-devel
    
por 09.02.2018 / 20:11