opensslconf.h não encontrado

14

Estou tentando criar o analisador do znort987 e executei o sudo apt-get libssl-dev. Eu posso ver todos os tipos de arquivos de cabeçalho relacionados a ssl em / usr / include / openssl, mas o opensslconf.h está ausente 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
Keir Finlow-Bates
fonte

Respostas:

4

Parece que isso aconteceu há muito tempo (especificamente, 20/05/2013 16:56:06 UTC). Encontrei um problema estranho que se parecia muito com o OP, mas acabou sendo um problema com o swig que falha ao anexar o conjunto correto de inclusões na compilação. Acabei procurando pela fonte apenas para ter certeza de que não era um problema de pacote do ubuntu, mas não parecia ser um problema do ubuntu.

Examinando com mais cuidado, o pacote openssl mudou o opensslconf.h para uma estrutura de diretórios com reconhecimento de multiarch. Aqui está o commit detalhado: http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/utopic/openssl/utopic-updates/revision/11.1.42 e se você quiser ver como eu vim com essa revisão, eu seguiu as revisões anotadas das regras do debian, que foi uma maneira surpreendentemente eficiente de descobrir o que aconteceu: http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/utopic/openssl/utopic-updates/annotate/head:/ debian / rules .

E o colaborador, Kurt Roeckx, escreve no Changelog:

  • Vá para / usr / include / $ (DEB_HOST_MULTIARCH) e marque libssl-dev Multi-Arch: same.

Para ser justo, desejo que o opensslconf.h tenha sido, pelo menos, vinculado à pasta / usr / include / openssl com o restante dos cabeçalhos relacionados à lógica. Mas isso não é um bug, é apenas a minha opinião. Para as pessoas que se deparam com esse problema como eu, é preciso apenas um pouco de farejar as inclusões que faltam para manter as coisas em ordem.

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

Pavan Gupta
fonte
1
Acho que estou tendo o mesmo problema que você agora. Como você resolveu isso?
Surya Wijaya Madjid
4

Se você está construindo em um sistema de 64 e está segmentando 32 bits, o seguinte comando corrigiu esse problema para mim:

sudo apt-get install libssl-dev:i386
Andy Southwell
fonte
E você precisa ativar essa arquitetura primeiro comsudo dpkg --add-architecture i386
Sandburg
3

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

Parece que o pacote está com defeito.

<openssl/opensslconf.h>é criado pelo Configurecomando do OpenSSL . Ele deve ser incluído nos arquivos de distribuição. A primeira menção que encontrei foi o CHANGELOG do OpenSSL na versão 0.9.2 .

Arquive um relatório de bug em https://bugs.launchpad.net/ubuntu/+filebug/?no-redirect .

Jeffrey Walton
fonte
1

Parece que é um problema com sistemas de 32 x 64 bits. Eu limpei tudo, baixei e construí o Openssl sozinho e segui as instruções para construir o analisador. Durante a fase lnk, ele pulou o "libcrypto incompatível" e falhou.

Portanto, presumo 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 legal.

Keir Finlow-Bates
fonte
Estou tentando compilar um programa de 32 bits em uma máquina de 64 bits e estou recebendo o mesmo opensslconf.herro não encontrado. instalado libssl-dev(existe uma versão de 32 bits disso?) e todos, exceto meu programa, não são compilados devido ao arquivo ausente. Alguma ideia?
Roberto Andrade
0

Encontrei esse problema ao compilar uma instalação destinada a um dispositivo LTS 14 incorporado no PC LTS 16. Foi assim que eu resolvi:

 cd /usr/include/openssl/

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

 sudo ln -s ../x86_64-linux-gnu/openssl/opensslconf.h .
Jitendra Kulkarni
fonte