Mysql

cs_Vinsou Messages postés 16 Date d'inscription mercredi 23 janvier 2002 Statut Membre Dernière intervention 30 janvier 2002 - 23 janv. 2002 à 18:40
templeofboom Messages postés 41 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 21 juin 2005 - 30 nov. 2004 à 12:46
J'essaie de me connecter à mysql. Donc j'inclus "mysql.h" et ensuite j'ai:

ligne 90: mysql_close (conn);

Et à la compilation:

main.cpp:90: undefined reference to `mysql_close'

Ps: suis newbies dans le domaine. Ma config: linux avec KDevelop

Quelqu'un a une idée ?

Merci d'avance

@++

8 réponses

cs_jpeg Messages postés 40 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 25 février 2004 1
24 janv. 2002 à 09:53
Je n'ai pas encore essayé de programmer en C/C++ avec MySQL. Néanmoins, l'erreur qui se produit ici ne vient pas de l'édition des liens mais bel et bien de la compilation proprement dite.
Tu fais référence à la fonction mysql_close qui ne figure pas de le mysql.h
Regarde dans ce fichier les différents prototypes de fonctions : il y en a certainement une qui sert à fermer la connection mais en tout cas elle ne s'appelle pas mysql_close (ou alors elle est situé dans un autre header)
Dernière précision : j'ai téléchargé recemment les bibliothèques de développement pour mysql sous VC++6 et pour Linux (gcc) sur leur site. J'ai vu qu'il existait justement un patch pour la version gcc. Peut-être est-ce la solution à ton problème ... va voir sur mysql.org si t'as pas eu ce patch ...
0
cs_Vinsou Messages postés 16 Date d'inscription mercredi 23 janvier 2002 Statut Membre Dernière intervention 30 janvier 2002
24 janv. 2002 à 12:50
Toutes les fonctions qui font référence à l'api de mysql renvoient un message d'erreur. Apparemment, il n'a pas compiler mysql.h
Sous Visual C++ non plus il ne voulait pas mais là il m'indiquait explicietment qu'il y avait des erreurs dans ce fichier d'en-tête.

Je vais voir avec ce que tu as dit.

@++
0
cs_jpeg Messages postés 40 Date d'inscription lundi 17 décembre 2001 Statut Membre Dernière intervention 25 février 2004 1
24 janv. 2002 à 14:34
J'ai peut-être une autre idée. En fait, j'en suis pas sûr car tu n'as pas montré tout ce qui était affiché par le compilateur.
En fait, j'ai dit que ça foirait à la compil et non à l'édition des liens. Mais comme tu me dis que TOUTES les fonctions merdent, j'ai changé d'avis et je pense à présent que ça vient de l'édition des liens. En d'autres termes, si tu compile sous Linux, tu as obligatoirement une libraire .so (peut-être qu'elle s'appelle libmysql.so, j'en sais rien) qui a dû être installée dans le répertoire par défaut des librairies.
Il faut que tu compile ton prog en indiquant cette librairie au compilo sinon ça merdera à coup sûr ... Est-ce que tu l'as fait ?

si tu l'as pas fait, tu dois compiler à peu de chose près comme ça :
g++ main.cpp -o main -lmysql
lmysql si c'est libmysql.so ltoto si c'est libtoto
de toute façon ça commence tt le temps par lib

Dans KDevelop je sais pas où ça se fait mais tu dois pouvoir lui renseigner quelles lib tu veux intégrer.

En ce qui concerne visual c++, c'est le même pb ...
Au lieu d'avoir des .so (pour la compil et l'execution), tu as des .lib (pour la compil) et des .DDL (pour l'exec.)
Tous ces machins doivent être dans les répertoires stds (/VisualC++/lib pour le lib et /Windows/System pour la dll)
En plus tu dois faire Projet->Preferences->Link et ajouter mysql.lib aux autres .lib.
Voilà, j'espère que c'est pas trop compliqué ...
Tiens moi au courant ... Si ça merde, envoie moi tout ce que te dit le compilo et on verra.
0
cs_Vinsou Messages postés 16 Date d'inscription mercredi 23 janvier 2002 Statut Membre Dernière intervention 30 janvier 2002
24 janv. 2002 à 14:39
ok, je vais voir ça.
Comme je sais pas tropc omment faire avec kdevelop, je vais compiler à la main mon fichier source et voir si ça focntionne. Ca m'évitera de chercher deux heures sur kdevelop.
J'eesaie dès que je retourne sous linux et je te tiens au courant (ça sert à rien d'essayer sous visual vu que mon appli est pour linux).

Merci

@++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Vinsou Messages postés 16 Date d'inscription mercredi 23 janvier 2002 Statut Membre Dernière intervention 30 janvier 2002
24 janv. 2002 à 22:01
Je te remercie, ça fonctionne.
La libraie se nommait mysqlclient.so.

Merci encore

@++
0
loulouklm Messages postés 10 Date d'inscription dimanche 17 novembre 2002 Statut Membre Dernière intervention 29 juillet 2008
15 mai 2003 à 16:19
#include <mysql.h> me renvoi l'erreur pas de fichier
je suis sous linux avez-vous une idée ?

Loup
0
jsonor Messages postés 49 Date d'inscription mercredi 12 février 2003 Statut Membre Dernière intervention 5 septembre 2006
2 nov. 2003 à 17:28
"mysql.h" se trouve dans "usr/include/mysql/" donc faut pas faire "#include <mysql.h>" mais "#include <mysql/mysql.h>"
0
templeofboom Messages postés 41 Date d'inscription vendredi 19 novembre 2004 Statut Membre Dernière intervention 21 juin 2005
30 nov. 2004 à 12:46
bonjour, g egalement un soucis de link je développe une appli qui utilise mysql sous dev cpp et je connait po le nom du link a ajouter du coup ca plante le -lmysqlclient ou -lmysql ca marche po: il dit qu'il connai po .
si vous avez une idée.....
T3mpl30fb00m
0
Rejoignez-nous