J'essaie d'utiliser openssl dans un programme gcc mais cela ne fonctionne pas.
g++ server.cpp /usr/lib/libssl.a -o server
donne un message d'erreur, comme n'importe quoi avec l'option -l
. Que dois-je taper sur la ligne de commande pour créer un lien avec openssl? Le fichier /usr/lib/libssl.a
existe, mais malgré tout, je reçois toujours l'erreur de l'éditeur de liens no such function MD5() exists
.
Sans connaître exactement les erreurs que vous constatez, il est difficile de fournir une solution exacte. Voici ma meilleure tentative.
D'après les informations que vous avez fournies, il semble que l'éditeur de liens échoue car il ne trouve pas de référence à la fonction md5
dans libssl.a
. Je crois que cette fonction est en réalité dans libcrypto
, vous devrez donc peut-être spécifier cette bibliothèque également.
g++ server.cpp -L/usr/lib -lssl -lcrypto -o server
Vous ou autres pouvez trouver cet article developerWorks article utile:
Il décrit la plupart des choses que vous devez savoir pour décoller avec OpenSSL et C/C++. Si vous constatez que vous suivez presque toutes les mêmes étapes, cela peut vous aider à voir ce qui doit être fait.
Bonne chance.
Dans Eclipse IDE, sélectionnez la propriété Votre projet -> C/c ++ Construction -> Paramètres
/ usr/lib -lssl -lcrypto
L'emplacement de la bibliothèque n'est pas fixe. Dans mon cas (Ubuntu 18.04), les fichiers .a sont situés dans /usr/lib/x86_64-linux-gnu/
. Alors voici les étapes complètes:
1) installez la bibliothèque ,
Sudo apt install libss-dev
2) vérifiez les fichiers installés ,
dpkg-query -L libssl-dev
3) changez les drapeaux gcc -L(library directory) -l(library name)
, par exemple,
gcc XXX.c XXXXX.c -L/usr/lib/x86_64-linux-gnu/ -lcrypto -lssl
En plus des réponses acceptées, je n'ai pas pu compiler l'exemple OpenSSL pour AES-CCM:
https://github.com/openssl/openssl/blob/master/demos/evp/aesccm.c
Pour que cela fonctionne, je devais ajouter deux choses supplémentaires:
-ldl
-pthread
(L'ajout direct de la bibliothèque avec -lpthread est non recommandé )