opensslconf.h não encontrado

12

Estou tentando construir o analisador de znort987 e executei o sudo apt-get libssl-dev. Eu posso ver todos os tipos de arquivos de cabeçalho relacionados ao ssl em / usr / include / openssl mas o arquivo opensslconf.h está faltando na pasta openssl e o comando make gera o erro:

 make: *** No rule to make target '/usr/include/openssl/opensslconf.h', needed by '.objs/rmd160.o'.  Stop.

Estou usando o Ubuntu 14.04 em um laptop AMD de 32 bits.

Atualização: executei o seguinte para limpar minha instalação:

sudo apt-get remove libssl-dev build-essential g++-4.4 libboost-all-dev libsparsehash-dev git-core perl

sudo apt-get install libssl-dev build-essential g++-4.4 libboost-all-dev libsparsehash-dev git-core perl
git clone git://github.com/znort987/blockparser.git
cd blockparser
make

Agora eu recebo:

  /usr/include/openssl/e_os2.h:56:33: fatal error: openssl/opensslconf.h: No such file or directory
    
por Keir Finlow-Bates 14.09.2014 / 11:48

6 respostas

4

Este material parece ter acontecido há muito tempo atrás (especificamente, 2013-05-20 16:56:06 UTC). Eu me deparei com um problema estranho que parecia muito com o OP, mas acabou por ser um problema com o swig não anexar o conjunto correto de includes ao compilar. Eu acabei caçando através da fonte apenas para ter certeza que não era um problema do pacote ubuntu, mas não parecia ser um problema com o Ubuntu.

Olhando mais cuidadosamente para isso, o pacote openssl mudou o opensslconf.h para uma estrutura de diretórios com reconhecimento de multiarque. Aqui está o commit detalhado: link e se você quero ver como eu cheguei naquela revisão, eu segui as revisões anotadas das regras do Debian que era uma maneira surpreendentemente eficiente de descobrir o que aconteceu: link .

E o committer, Kurt Roeckx, escreve no Changelog:

  
  • Mova para / usr / include / $ (DEB_HOST_MULTIARCH) e marque o libssl-dev Multi-Arch: mesmo.
  •   

Para ser sincero, eu gostaria que o opensslconf.h fosse, pelo menos, um link simbólico para a pasta / usr / include / openssl com o resto dos cabeçalhos logicamente relacionados. Mas isso não é um erro, é apenas a minha opinião. Para as pessoas que se deparam com este problema, como eu fiz, é preciso apenas um pouco de farejar faltando inclui para manter as coisas cantarolando junto.

E para o OP , é muito mais tarde agora, mas eu dei o seu conjunto exato de passos em uma caixa 14.04 LTS x64 e não topei com o problema que você estava tendo. Talvez o problema tenha sido resolvido com o tempo. Espero que isso ajude.

    
por Pavan Gupta 09.03.2015 / 08:38
4

Se você estiver criando um sistema 64 e estiver segmentando 32 bits, o comando a seguir corrigiu esse problema para mim:

sudo apt-get install libssl-dev:i386
    
por Andy Southwell 11.05.2016 / 10:28
2
  

executou o sudo apt-get libssl-dev. Eu posso ver todos os tipos de arquivos de cabeçalho relacionados ao ssl em / usr / include / openssl mas opensslconf.h está faltando na pasta openssl e o comando make gera o erro ...

Parece que o pacote está com defeito.

<openssl/opensslconf.h> é criado pelo comando Configure do OpenSSL. Deve ser incluído nos arquivos de distro. A primeira menção que pude encontrar foi o CHANGELOG do OpenSSL na versão 0.9.2 .

Registre um relatório de bug no link .

    
por Jeffrey Walton 24.09.2014 / 01:04
1

Parece que é um problema com sistemas 32 vs. 64 bits. Limpei tudo, baixei e criei o Openssl e segui as instruções para construir o parser. Durante a fase de lnk, ele ignorou o "libcrypto incompatível" e falhou.

Portanto, estou supondo que as bibliotecas necessárias estejam disponíveis apenas para sistemas de 64 bits e sejam ignoradas durante a instalação do libssl-dev em sistemas de 32 bits. Uma mensagem de erro mais clara seria boa.

    
por Keir Finlow-Bates 14.09.2014 / 20:01
1

Ele foi movido devido a vários arcos. Na amd64 ele está localizado em /usr/include/x86_64-linux-gnu/openssl/opensslconf.h

link

    
por Chaoqun.Zhang 22.02.2017 / 10:39
0

Eu encontrei este problema durante a compilação de uma configuração para um dispositivo LTS 14 embarcado no LTS 16 PC. Foi assim que resolvi:

 cd /usr/include/openssl/

 sudo ln -s /usr/include/gnutls/openssl.h .

 sudo ln -s ../x86_64-linux-gnu/openssl/opensslconf.h .
    
por Jitendra Kulkarni 18.11.2017 / 04:10

Tags