Undefined reference avec OPENSSL

Fermé
mehdi816 Messages postés 67 Date d'inscription jeudi 22 mai 2008 Statut Membre Dernière intervention 10 novembre 2011 - 26 sept. 2008 à 21:28
beslae Messages postés 109 Date d'inscription lundi 22 septembre 2008 Statut Membre Dernière intervention 11 octobre 2008 - 28 sept. 2008 à 00:57
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 :(
A voir également:

2 réponses

beslae Messages postés 109 Date d'inscription lundi 22 septembre 2008 Statut Membre Dernière intervention 11 octobre 2008 16
27 sept. 2008 à 06:26
et les includes dans ton .bashrc ( ca me le fait tout le temps quand je suis en root !! )
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 569
27 sept. 2008 à 09:46
Salut,

quels includes dans .bashrc?!

0
beslae Messages postés 109 Date d'inscription lundi 22 septembre 2008 Statut Membre Dernière intervention 11 octobre 2008 16
28 sept. 2008 à 00:57
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
0