Undefined reference avec OPENSSL
mehdi816
Messages postés
67
Date d'inscription
Statut
Membre
Dernière intervention
-
beslae Messages postés 109 Date d'inscription Statut Membre Dernière intervention -
beslae Messages postés 109 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je dois utiliser pour mon application une fonction qui ajoute à un certificat électronique x509 une extension d'adresse ip définie dans le rfc 3779.
Pour cela j'utilise les bibliothèques de openssl. Openssl prévoit une fichier "x509v3.h" pour définir les variables et les fonctions nécessaires. La fonction en question est v3_addr_add_prefix
D'autre part, la définition de cette fonction se trouve dans un fichier "v3_addr.c" se trouvant dans le dossier d'installation de openssl /crypto et que tu trouve pas après l'installation de openssl parce qu il sera inclu dans la bibliothèque lssl et tout devra marcher lorsque tu compile avec l'option -lssl.
Mon problème c'est que le programme m'affiche au moment de la compilation :
root@****:/home/*****/*****/test# cc -o test test.c -lssl
/tmp/ccKCSVTj.o: In function `main':
test.c:(.text+0x5b5): undefined reference to `v3_addr_add_prefix'
collect2: ld a retourné 1 code d'état d'exécution
alors que j'ai bien fait include <openssl/x509v3.h> au début de mon code.
Autre chose:
Dans le fichier x509v3.h et v3_addr.h tu trouves au début #ifndef OPENSSL_NO_RFC3779 ce qui permet au moment de la configuration de openssl (./configure) d'incule ou de ne pas inclure les fonction relatives au rfc. J'ai bien fait attention à ce point et j'ai récompiler openssl pour ne pas définir OPENSSL_NO_RFC3779. ça résolu le fait que la compilation ne tenait pas compte des variables définit pour le rfc, mais ça n'a pas résolu le fait que la compilation ne tient pas compte des fonctions définies pour le rfc. J'espère être clair.
La fonction v3_addr_add_prefix me permet d'éviter plusieurs lignes de codes soit la redéfinition de cette fonction :(
je dois utiliser pour mon application une fonction qui ajoute à un certificat électronique x509 une extension d'adresse ip définie dans le rfc 3779.
Pour cela j'utilise les bibliothèques de openssl. Openssl prévoit une fichier "x509v3.h" pour définir les variables et les fonctions nécessaires. La fonction en question est v3_addr_add_prefix
D'autre part, la définition de cette fonction se trouve dans un fichier "v3_addr.c" se trouvant dans le dossier d'installation de openssl /crypto et que tu trouve pas après l'installation de openssl parce qu il sera inclu dans la bibliothèque lssl et tout devra marcher lorsque tu compile avec l'option -lssl.
Mon problème c'est que le programme m'affiche au moment de la compilation :
root@****:/home/*****/*****/test# cc -o test test.c -lssl
/tmp/ccKCSVTj.o: In function `main':
test.c:(.text+0x5b5): undefined reference to `v3_addr_add_prefix'
collect2: ld a retourné 1 code d'état d'exécution
alors que j'ai bien fait include <openssl/x509v3.h> au début de mon code.
Autre chose:
Dans le fichier x509v3.h et v3_addr.h tu trouves au début #ifndef OPENSSL_NO_RFC3779 ce qui permet au moment de la configuration de openssl (./configure) d'incule ou de ne pas inclure les fonction relatives au rfc. J'ai bien fait attention à ce point et j'ai récompiler openssl pour ne pas définir OPENSSL_NO_RFC3779. ça résolu le fait que la compilation ne tenait pas compte des variables définit pour le rfc, mais ça n'a pas résolu le fait que la compilation ne tient pas compte des fonctions définies pour le rfc. J'espère être clair.
La fonction v3_addr_add_prefix me permet d'éviter plusieurs lignes de codes soit la redéfinition de cette fonction :(
A voir également:
- Impossible de générer de clé privée à partir de openssl_pkey_new. vérifiez votre configuration openssl. le problème peut être lié au chemin vers openssl.cafile.
- Ethernet n'a pas de configuration ip valide - Guide
- Clé de produit windows 10 gratuit - Guide
- Clé usb non détectée - Guide
- Panneau de configuration - Guide
- Navigation privée - Guide
2 réponses
bah comment gcc va deviner que ton fichier est dans /home/toi/usr/includes/openssl/ton_fichier ou plutot dans /usr/lib/includes/openssl/ton_fichier ou encore dans /.... etc !!
il y a une variable grlobale a modifier ! et normalement elle est modifier automatiquement si t install la lib avec un gestionnaire de packet, le truc c est qu il estime pas nécessaire de updater ce truc la pour le root !
donc apres faut le fair a la main
il y a une variable grlobale a modifier ! et normalement elle est modifier automatiquement si t install la lib avec un gestionnaire de packet, le truc c est qu il estime pas nécessaire de updater ce truc la pour le root !
donc apres faut le fair a la main
quels includes dans .bashrc?!