web-dev-qa-db-fra.com

erreur fatale: fichier 'openssl/bio.h' introuvable

J'essaie d'installer Apache Thrift sur mon Mac, mais je pose un problème . J'ai suivi les étapes d'installation de cette page , mais lorsque j'essaie de suivre les étapes d'installation de libevent, l'erreur suivante s'affiche lors de l'exécution de la commande make:

erreur fatale à cause du fichier 'openssl/bio.h' introuvable

Capture d'écran de l'erreur réelle

J'ai vérifié la version d'openSSL que j'utilise, et c'est "0.9.8zg"

Un conseil sur ce que je devrais faire pour résoudre ce problème?

29
Lewis-Eric

Je suis sur El Capitan 10.11.6 et j'ai eu le problème lors de l'installation manuelle de l'extension php mongodb.

Je l'ai résolu en suivant les indications de @ user7059092 concernant l'étape de configuration:

$./configure LDFLAGS='-L/usr/local/opt/openssl/lib' CPPFLAGS='-I/usr/local/opt/openssl/include'

41
Simon Baudry

J'ai le même problème en installant Thrift comme les autres. Dans mon cas, je résous après la prochaine Jira:

https://jira.mongodb.org/browse/CDRIVER-941

Une autre approche consiste, après "brass install openssl", à faire "brass lien Openssl --force", qui installe les en-têtes de / usr/local/include/openssl. 

$ brew install openssl 
$ brew link openssl --force

Pour une raison quelconque, pkg-config de Homebrew sait qu'OpenSSL est homebrewed uniquement lorsque vous exécutez "link openssl --force": 

$ pkg-config --variable=includedir openssl

/usr/local/Cellar/openssl/1.0.2d_1/include

18
Franzi

Je rencontrais également ce problème lors de l'installation d'Apache Thrift et voici comment je l'ai résolu pour la configuration de mon système.

Mon système d'exploitation est El Capitan (10.11.1) avec toutes les dernières mises à jour installées et j'ai utilisé MacPorts pour installer openssl (version 1.0.2e du 3 décembre 2015). Cela ouvre openssl dans /opt/local. Dans tous les cas, essayez de trouver bio.h (mon cas était situé à /opt/local/include/openssl/bio.h) et vous pouvez probablement savoir où openssl est installé pour votre configuration. Lorsque vous êtes dans le dossier libevent et exécutez:

./configure --help

tu vas voir ça 

--includedir=DIR        C header files [PREFIX/include]

Puisque PREFIX est /usr/local conformément aux instructions, il me suffisait de créer un lien symbolique dans /usr/local/include.

cd /usr/local/include
Sudo ln -s /opt/local/include/openssl/ openssl

Maintenant make s'exécute sans erreur. 

6
Bart Joosten

Êtes-vous sur El Capitan? Cela semblait être mon problème.

La réponse de Jeremy sur ce problème de Puma a fonctionné pour moi: 

https://github.com/puma/puma/issues/718

Mon problème était spécifiquement lié à la gemme Puma, mais votre problème pourrait être similaire à El Capitan.

3
jakeatwork

pour installer libevent sur Mac: http://macappstore.org/libevent/

plats à emporter pour ce site:

  1. Ruby -e "$ (curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install )" </ dev/null 2>/dev/null
  2. brasser installer libevent

pour l'erreur openssl:

La méthode la plus propre devrait être d’indiquer au compilateur d’utiliser openssl de MacOS en définissant les variables d’environnement correspondantes.

Vous pouvez le faire pendant la phase de configuration:

./configure CXXFLAGS = '- I/usr/local/bin -L usr/local/include' 

1
user7059092