[LINUX] Connexion mysql en C

cs_JuJu Messages postés 10 Date d'inscription samedi 10 novembre 2001 Statut Membre Dernière intervention 7 août 2007 - 27 janv. 2005 à 11:42
mhooreman Messages postés 12 Date d'inscription lundi 28 février 2005 Statut Membre Dernière intervention 28 février 2005 - 28 févr. 2005 à 13:15
Bonjour,
J'essaie de programmer une connexion mysql en C afin d'y insérer un enregistrement.
Voici mon code actuel :
========================================================
#include <stdio.h>
#include <stdlib.h>
#include "/usr/include/mysql/mysql.h"

MYSQL *pointconn;

int main (void)
{
pointconn = mysql_init(NULL);
mysql_real_connect(pointconn, "127.0.0.1", "root", "pass", "test", 0, NULL, 0);

mysql_query(pointconn, "SELECT * FROM tbl_test");
printf ("Yop : %lu lignes\n", (unsigned long) mysql_affected_rows(pointconn));

mysql_close(pointconn);

exit(0);
return(0);
}
=========================================================

Mon problème c'est que lors de la compilation (gcc mysql.c -o prog.bin), il me dit que toutes les fonctions mysql (mysql_init, mysql_query...) sont undefined. Pourtant le fichier /usr/include/mysql/mysql.h existe. J'ai également installé les librairies mysql_devel.

Merci d'avance pour votre aide

Juju

3 réponses

cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
27 janv. 2005 à 13:55
en fait tu dois avoir une fichier "librairie" extension .a qui contient les définitions des fonctions de mySQL et en fait il faut que tu specifies au compilateur (gcc en l'ocurence) que tu veux compiler le programme avec cette libraire !
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
cs_LordBob Messages postés 2865 Date d'inscription samedi 2 novembre 2002 Statut Membre Dernière intervention 11 mai 2009 9
27 janv. 2005 à 13:57
essai ca:
gcc mysql.c -o prog.bin -lmysqlclient
Bob...

"La chance accorde ses faveur aux esprits avertis..."
0
mhooreman Messages postés 12 Date d'inscription lundi 28 février 2005 Statut Membre Dernière intervention 28 février 2005
28 févr. 2005 à 13:15
Pour info, il y a une différence entre les .a (liaison statique du
style gcc main.o /usr/lib/fichier.a) et .so (liaison dynamique du style
gcc main.o -lfichier (pour /usr/lib/fichier.so)).



Dans le premier cas (déconseillé la plupart du temps), ton exécutable est plus gros et doit etre recompilé à chaque mise à jour.

Michael Hooreman

DBA Oracle

Programmeur Free Softwares
0
Rejoignez-nous