opensslconf.h nicht gefunden

14

Ich versuche, den Parser von znort987 zu erstellen und habe sudo apt-get libssl-dev ausgeführt. Ich kann alle möglichen ssl-bezogenen Header-Dateien in / usr / include / openssl sehen, aber opensslconf.h fehlt im openssl-Ordner und der make-Befehl löst den Fehler aus:

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

Ich verwende Ubuntu 14.04 auf einem 32-Bit-AMD-Laptop.

Update: Ich habe Folgendes ausgeführt, um meine Installation zu bereinigen:

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

Jetzt bekomme ich:

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

Antworten:

4

Dieses Zeug scheint vor langer Zeit passiert zu sein (speziell, 2013-05-20 16:56:06 UTC). Ich stieß auf ein seltsames Problem, das dem OP sehr ähnlich sah, aber es stellte sich als Problem heraus, dass swig beim Kompilieren nicht die richtigen Includes anfügte. Am Ende habe ich die Quelle durchsucht, um sicherzugehen, dass es sich nicht um ein Ubuntu-Paketproblem handelt, aber es schien kein Problem mit Ubuntu zu sein.

Bei genauerem Hinsehen hat das openssl-Paket opensslconf.h in eine Verzeichnisstruktur mit mehreren Archiven verschoben. Hier ist das ausführliche Commit: http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/utopic/openssl/utopic-updates/revision/11.1.42 und wenn Sie sehen möchten, wie ich auf diese Revision gekommen bin, ich befolgte die kommentierten Überarbeitungen der Debian-Regeln, was eine überraschend effiziente Methode war, um herauszufinden, was passiert ist: http://bazaar.launchpad.net/~ubuntu-branches/ubuntu/utopic/openssl/utopic-updates/annotate/head:/ debian / rules .

Und der Committer Kurt Roeckx schreibt im Changelog:

  • Verschieben Sie nach / usr / include / $ (DEB_HOST_MULTIARCH) und markieren Sie libssl-dev Multi-Arch: same.

Um fair zu sein, ich wünschte, die Datei opensslconf.h wäre zumindest in den Ordner / usr / include / openssl mit den restlichen logisch verwandten Headern verlinkt. Aber das ist kein Fehler, das ist nur meine Meinung. Für die Leute, die wie ich auf dieses Problem gestoßen sind, ist es nur ein bisschen nötig, die fehlenden Includes zu beschnüffeln, um die Dinge am Laufen zu halten.

Und zum OP ist es jetzt viel später, aber ich habe gerade Ihre genauen Schritte auf einer 14.04 LTS x64-Box durchgespielt und bin nicht auf das Problem gestoßen, das Sie hatten. Vielleicht wurde das Problem mit der Zeit einfach gelöst. Hoffe, dass etwas davon hilft.

Pavan Gupta
quelle
1
Ich glaube, ich habe jetzt das gleiche Problem wie Sie. Wie hast du es gelöst?
Surya Wijaya Madjid
4

Wenn Sie auf einem 64-Bit-System aufbauen und auf 32-Bit abzielen, hat der folgende Befehl dieses Problem für mich behoben:

sudo apt-get install libssl-dev:i386
Andy Southwell
quelle
Und Sie müssen diese Architektur zuerst mitsudo dpkg --add-architecture i386
Sandburg
3

haben sudo apt-get libssl-dev ausgeführt. Ich kann alle möglichen ssl-bezogenen Header-Dateien in / usr / include / openssl sehen, aber opensslconf.h fehlt im openssl-Ordner und der make-Befehl löst den Fehler aus ...

Es hört sich so an, als ob das Paket defekt ist.

<openssl/opensslconf.h>wird durch den ConfigureBefehl von OpenSSL erstellt . Es sollte in den Distributionsdateien enthalten sein. Die früheste Erwähnung, die ich finden konnte, war OpenSSLs CHANGELOG in Version 0.9.2 .

Melden Sie einen Fehler unter https://bugs.launchpad.net/ubuntu/+filebug/?no-redirect .

Jeffrey Walton
quelle
1

Es sieht so aus, als wäre dies ein Problem bei 32- oder 64-Bit-Systemen. Ich habe alles gelöscht, OpenSL selbst heruntergeladen und erstellt und die Anweisungen zum Erstellen des Parsers befolgt. Während der lnk-Phase übersprang es die "inkompatible libcrypto" und schlug dann fehl.

Daher gehe ich davon aus, dass die erforderlichen Bibliotheken nur für 64-Bit-Systeme verfügbar sind und bei der Installation von libssl-dev auf 32-Bit-Systemen übersprungen werden. Eine klarere Fehlermeldung wäre nett.

Keir Finlow-Bates
quelle
Ich versuche, ein 32-Bit-Programm auf einem 64-Bit-Computer zu kompilieren und erhalte den gleichen opensslconf.hnicht gefundenen Fehler. installiert libssl-dev(gibt es eine 32-Bit-Version davon?) und alle außer meinem Programm lassen sich wegen der fehlenden Datei nicht kompilieren. Irgendwelche Ideen?
Roberto Andrade
0

Dieses Problem ist beim Kompilieren eines Setups für ein eingebettetes LTS 14-Gerät auf einem LTS 16-PC aufgetreten. So habe ich es gelöst:

 cd /usr/include/openssl/

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

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