C et mySQL

Signaler
Messages postés
11
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
22 septembre 2004
-
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
-
Bonsoir,

Désolé pour le titre bateau, je sais qu'il apparait souvent, mais j'ai fait une recherche sur plusieurs pages et je n'ai pas trouvé le thread adéquat donc... me voila

Je vais me tirer une balle !

Ce petit programme pour tester :

#include <mysql.h>
#include <stdio.h>

static MYSQL mydb;

int main(void)
{
if(!mysql_connect(&mydb, "localhost", "root", ""))
{
printf("mysql connection error");
exit(1);
}
mysql_close(&mydb);
return 0;
}

Voic ma ligne de compilation :
gcc -o demo demo.c -Ic:\mysql\include -Lc:\mysql\lib\debug -lmysqlclient

réponse du compilateur :
gcc.exe: mysqlclient: No such file or directory (ENOENT)

Il ne trouve pas la librairie et je ne sais pas pourquoi, ca devrait marcher pourtant non ? Avec Devcpp, j'ai beau ajouter les dossiers contenant les header et le lib au compilateur, c'est pareil.

Toute aide est bienvenue, merci.

Et mon prof je vais vraiment le buter, il comprend rien mais RIEN ! Je vous raconterai plus tard si vous voulez...

Merci d'avance de toute facon

a+

19 réponses

Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
ya quoi dans c:\mysql\lib\debug ?
Messages postés
11
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
22 septembre 2004

il y a mysqlclient.lib
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
utilise le package pour gcc, les .lib c'est pour visual c++
Messages postés
11
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
22 septembre 2004

j'utilise ce qui est distribué avec mysql. d'ailleurs sur leur site, cette lib est utilisée avec gcc.

tu peux me donner une adresse du package pour gcc ?
Messages postés
11
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
22 septembre 2004

du neuf :

j'ai toujours des erreurs, mais au moins la compilation se lance (c'est déjà ça) maintenant j'ai des problèmes avec mysql.h : parse error partout ! avec my_global.h aussi

grrr

merci de tes réponses en tout cas.

sympa ;)
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
ben va sur sourceforge, mysql c'est libre

ce qui est sur c'est que le .lib c'est vc++, sous gcc c'est .a,
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
"j'ai toujours des erreurs, mais au moins la compilation se lance (c'est déjà ça) maintenant j'ai des problèmes avec mysql.h : parse error partout ! avec my_global.h aussi"

tu as bien le package gcc ?
Messages postés
11
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
22 septembre 2004

je suis sous win2000, j'utilise djgpp. c'est pareil. effectivement les librairies sont en *.a

est ce que ca change fondamentalement les choses ?

sinon, je vais sur sf de suite
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
oui c'est fondamentale, le compilateur ne pourras pas linker avec du code compilé par un autre
Messages postés
11
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
22 septembre 2004

je ne crois pas qu'il y a une différence. je vois sur un forum de mysql que qqun a la meme config que moi : w2k et gcc qui utilise les *.lib de la distrib mysql

donc...

d'ailleurs ce n'est pas avec la lib que j'ai un probleme mais avec les headers
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
ca me parais trop specifique au compilateur

c'est quoi les erreurs dans les header ?
Messages postés
11
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
22 septembre 2004

je suis en train de lire un thread d'un forum mysql, je te tiens au courant dans les minutes

merci a toi ;)
Messages postés
11
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
22 septembre 2004

rahhh non !!

les erreurs dans les headers c'est "parse error", "redefinition type", etc... j'ai aussi des parse error dans mon code source a moi, mais je n'en vois aucun.
Messages postés
11
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
22 septembre 2004

il y aurait moyen d'utiliser libmysql.dll ? avec devcpp ?
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
c'est quoi par exemple ces "parse error" et "redefinition type" ?
Messages postés
11
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
22 septembre 2004

en vrac :

2 C:\Documents and Settings\Administrator\My Documents\ProjetC\main.c In file included from ../../../../Documents and Settings/Administrator/My Documents/ProjetC/main.c

127 C:\mysql\include\mysql.h parse error before "MEM_ROOT"

127 C:\mysql\include\mysql.h [Warning] no semicolon at end of struct or union

184 C:\mysql\include\mysql.h parse error before "field_alloc"

207 C:\mysql\include\mysql.h parse error before '*' token

297 C:\mysql\include\my_global.h redefinition of `ushort'

et il y a une centaine...

ca doit etre des erreurs dues la mauvaise compil.
Messages postés
787
Date d'inscription
samedi 8 juin 2002
Statut
Membre
Dernière intervention
7 juin 2007
1
Pour les parse error j'en sais rien. Pour transformer un .lib en .a, il y a deux possibilités : le programme reimp (marche pas toujours) et dumper les exports de la DLL pour générer un .def qui sera converti en .a, comme çà :

implib.bat
pexports -o %1.dll > %1.def
dlltool --dllname %1.dll --input-def %1.def --output-lib lib%1.a


Usage : implib nom_de_la_dll (sans l'extension !)
Messages postés
11
Date d'inscription
mardi 21 septembre 2004
Statut
Membre
Dernière intervention
22 septembre 2004

merci a tous pour vos réponses.

je suis actuellement au cours, en salle info et j'utilise borland c++ 5 dont les librairies sont en *.lib et donc ca fonctionne, tu avais raison.

donc ca compile, ca trouve les headers et les librairies. j'ai maintenant un problème avec l'API elle meme :

je veux initialiser une struct MYSQL

MYSQL mydb;

mydb = mysql_init(&mydb);

et l'erreur est la suivante : cannot convert 'st_mysql *' to 'st_mysql'

le prototype de la fonction est le suivant : MYSQL *mysql_init(MYSQL *mysql)

une idée ?

en tout cas un grand merci, j'ai au moins une erreur concrête !! :)
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
MYSQL *mydb;

mydb = mysql_init(mydb);

et oubli pas de faire un close qqchose