Programme C et base de donnée mysql sous linux

Résolu/Fermé
lecadre Messages postés 36 Date d'inscription mercredi 25 juin 2014 Statut Membre Dernière intervention 24 novembre 2014 - 25 juin 2014 à 11:47
ElementW Messages postés 4764 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 - 26 juin 2014 à 14:59
Bonjour,
je suis un débutant dans le langage C j aimerai une aide sur un probleme de compilation avec gcc sous linux lorsque je veux générer mon exécutable avec la libraire de mysql il me dit qu'il ne retrouve pas le fichier.
voici le code erreur :
/usr/bin/ld: cannot find -l/home/safeoraci//mysqlconnect/lib/libmysqlclient.a
collect2: ld returned 1 exit status

Merci de bien m'aider à poursuivre ma programmation


4 réponses

fiddy Messages postés 11067 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 813
25 juin 2014 à 13:48
Bonjour,

/home/safeoraci//mysqlconnect/lib/libmysqlclient.a
Ben, il y a // entre safeoraci et mysqlconnect. Voilà pourquoi il ne doit pas trouver. Il faut changer le chemin.
0
lecadre Messages postés 36 Date d'inscription mercredi 25 juin 2014 Statut Membre Dernière intervention 24 novembre 2014
Modifié par lecadre le 25/06/2014 à 14:16
slt,merci pour ta reponse mais tjrs la mm chose
voici l erreur:
/usr/bin/ld: cannot find -l/home/safeoraci/mysqlconnect/lib/libmysqlclient.a
collect2: ld returned 1 exit status
0
fiddy Messages postés 11067 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 813
25 juin 2014 à 16:27
As-tu vérifié que le fichier libmysqlclient.a était bien présent à cet emplacement ?
0
lecadre Messages postés 36 Date d'inscription mercredi 25 juin 2014 Statut Membre Dernière intervention 24 novembre 2014
25 juin 2014 à 16:58
oui bien vérifié mais tjrs le mm probleme
0
ElementW Messages postés 4764 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 297
26 juin 2014 à 09:55
'lut, que dit la commande
file /home/safeoraci/mysqlconnect/lib/libmysqlclient.a
?
0
lecadre Messages postés 36 Date d'inscription mercredi 25 juin 2014 Statut Membre Dernière intervention 24 novembre 2014
26 juin 2014 à 10:00
Bonjour gravgun voici le resultat de la commande
/home/safeoraci/mysqlconnect/lib/libmysqlclient.a: current ar archive
0
ElementW Messages postés 4764 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 297
26 juin 2014 à 10:03
'lut, avec
gcc
, pour compiler avec une librairie statique, on utilise pas
-l
, on met juste le nom de fichier de l'archive. Ta ligne devient donc comme ceci:
gcc -o programme /home/safeoraci/mysqlconnect/lib/libmysqlclient.a  programme.c

0
lecadre Messages postés 36 Date d'inscription mercredi 25 juin 2014 Statut Membre Dernière intervention 24 novembre 2014
26 juin 2014 à 10:18
slt,apres l execution de la commande il me renvoi cette erreur

-sh-4.1$ gcc -o main /home/safeoraci/mysqlconnect/lib/libmysqlclient.a main.c
/tmp/cc7g6ec6.o: In function 'main':
main.c:(.text+0x23): undefined reference to 'mysql_init'
main.c:(.text+0x3c): undefined reference to 'mysql_options'
main.c:(.text+0x77): undefined reference to 'mysql_real_connect'
main.c:(.text+0x95): undefined reference to 'mysql_close'
collect2: ld returned 1 exit status
0
ElementW Messages postés 4764 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 297
26 juin 2014 à 10:19
Arf, je sais que l'odre dans lequel on précise les fichiers influe sur le linker... Tente en inversant l'odre du .a et du .c.
0
lecadre Messages postés 36 Date d'inscription mercredi 25 juin 2014 Statut Membre Dernière intervention 24 novembre 2014
26 juin 2014 à 10:20
je crois qu'il ne voit pas la librarie
0
lecadre Messages postés 36 Date d'inscription mercredi 25 juin 2014 Statut Membre Dernière intervention 24 novembre 2014
26 juin 2014 à 10:43
j'ai inversé mais tjrs le mm probleme
0
ElementW Messages postés 4764 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 297
26 juin 2014 à 10:45
La commande du coup c'était bien ça: ?
gcc -o main main.c /home/safeoraci/mysqlconnect/lib/libmysqlclient.a

J'avais oublié que l'odre de link se faisait de gauche à droite
0