Vous pouvez considérer cela comme une question complémentaire à How do I install the OpenSSL C++ library on Ubuntu?Comment installer et construire avec OpenSSL 1.0.0 sous Ubuntu?
J'essaye de construire du code sur Ubuntu 10.04 LTS qui nécessite OpenSSL 1.0.0.
Ubuntu 10.04 LTS est livré avec 0.9.8k OpenSSL:
$ openssl version
OpenSSL 0.9.8k 25 Mar 2009
après avoir exécuté sudo apt-get install libssl-dev
et la construction, en cours d'exécution ldd confirme que je suis lié 0.9.8:
$ ldd foo
...
libssl.so.0.9.8 => /lib/i686/cmov/libssl.so.0.9.8 (0x00110000)
...
libcrypto.so.0.9.8 => /lib/i686/cmov/libcrypto.so.0.9.8 (0x002b0000)
...
Comment puis-je installez OpenSSL 1.0.0 et le paquet de développement 1.0.0?
Mise à jour: Je vous écris cette mise à jour après avoir lu la réponse de SB (mais avant de l'essayer), car il est clair que je dois expliquer que la solution la plus évidente du téléchargement et l'installation OpenSSL 1.0.0 ne fonctionne pas :
Après avoir fait avec succès les éléments suivants (recommandé dans le fichier INSTALL):
$ ./config
$ make
$ make test
$ make install
... Je comprends toujours:
OpenSSL 0.9.8k 25 Mar 2009
... et:
$ sudo apt-get install libssl-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
libssl-dev is already the newest version.
The following packages were automatically installed and are no longer required:
linux-headers-2.6.32-21 linux-headers-2.6.32-21-generic
Use 'apt-get autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
... et (juste pour vous assurer) après la reconstruction de mon code, ldd retourne toujours la même chose.
Mise à jour # 2: J'ai ajouté le "-I/usr/local/ssl/include" et "-L/usr/local/lib/ssl" options (suggéré par SB) à mon makefile, mais je « m obtenir maintenant un tas de référence undefine des erreurs de compilation, par exemple:
/home/dspitzer/foo/foo.cpp:86: undefined reference to `BIO_f_base64'
/home/dspitzer/foo/foo.cpp:86: undefined reference to `BIO_new'
/usr/local/ssl/include/contient seulement un répertoire OpenSSL (qui contient de nombreux fichiers .h), donc j'ai aussi essayé" -I/usr/local/ssl/include/openssl "mais a eu les mêmes erreurs.
Mise à jour # 3: J'ai essayé de changer OpenSSL comprend de (par exemple):
#include <openssl/bio.h>
... à:
#include "openssl/bio.h"
... dans le fichier source .cpp mais obtenez toujours les mêmes erreurs de référence indéfinies.
Mise à jour # 4: Je réalise maintenant que ces erreurs de référence non définies sont des erreurs de liens. Si je supprime le "-L/usr/local/ssl/lib" de mon Makefile, je n'obtiens pas les erreurs (mais il est lié à OpenSSL 0.9.8). Le contenu de/usr/local/ssl/lib/sont:
$ ls /usr/local/ssl/lib/
engines libcrypto.a libssl.a pkgconfig
I ajouté -lcrypto, et les erreurs sont partis.
++ pour mise à jour n ° 4. Merci. –