mysql [C] - C - Programmation
Marsh Posté le 02-01-2005 à 15:41:54
Salut,
Citation : Comment resoudre ce pb ? des idees ? |
Certainement.
C'est quelle version ?!
(tu as essayé avec une autre version ?)
et il y a un truc que je n'ai pas saisie, tu dis avoir installé mysql via APT (donc je pense que tu n'as pas compilé les src toi meme (ou si?)), c'est de quelle compilation que tu fais allusion, compile de mysql ou de ton programme en C ?
Marsh Posté le 02-01-2005 à 16:03:04
3.23.58-13 pour mysql mysql-devel mysql-server
je vais voir pour les autres version, deja voir quelle est la derniere
Marsh Posté le 02-01-2005 à 16:07:02
oui effectivement il semblerait que ce soit la 4.1
Je vais installer les rpm et voir ce qu'il se passe
Marsh Posté le 02-01-2005 à 21:44:03
j'ai essaye de mettre la version 4 ou 4.1 de mysql mais je n'ai pas reussi car il y a des pb de dependance entre les paquetages en raison d'un pb de licence (qui pose egalement pb avec debian apparemment).
Je regarderais encore demain je pense
Marsh Posté le 02-01-2005 à 23:22:07
ok ben si tu veux on essaye sur la version que tu as sous la main.
Et il y a un truc que je n'ai pas saisie, tu dis avoir installé mysql via APT (donc je pense que tu n'as pas compilé les src toi meme (ou si?)), c'est de quelle compilation que tu fais allusion, compile de mysql ou de ton programme en C ?
Marsh Posté le 03-01-2005 à 00:14:26
de mon programma en C bien sur (sinon je serais sur OS alternatif )
edit ---
C'est un programme en C++ et pas en C donc compiler avec g++ ...
Je vais tenter une compilation des lignes mysql en C pour voir
verditc compilation avec gcc
J'ai toujours les erreurs de MEM_ROOT + d'autres qui semblent en decouler (erreur de syntaxe apres ...)
-----
mysql est installe, je peut le lancer (pas teste de requete mais bon ...)
Voici les quelques lignes de codes en rapport avec mysql
Sans ces lignes le programme fonctionne impecablement
Code :
|
Autre petit detail qui a peut etre son importance
Lors de l'ibstallation de mysql-devel il a tous mis /usr/include/mysql/
or mysql.h va chercher my_config.h et dbug.h dans /usr/include, j'ai donc copie ces deux fichiers au bon endroit.
Marsh Posté le 03-01-2005 à 00:27:59
J'ai peut etre trouve ...
En fouillant un peu sur google je suis tombe sur:
Code :
|
Avec ca j'obtenais une erreur, type incomplet
J'ai alors essaye:
Code :
|
et ca passe a la compilation.
Maintenant j'ai une erreur de linkage parce que je n'ai pas ajoute le lien pour mysql ds la ligne de compilation.
Je cherche ca et je confirme si la dolution ci dessus fonctionne
Marsh Posté le 03-01-2005 à 00:31:17
Essayes de regarder si "</usr/include/mysql/my_alloc.h" est bien présent.
Essayes aussi en rajoutant "#include <mysql/my_sys.h>"
Marsh Posté le 03-01-2005 à 00:40:47
my_alloc n'est pas present (ni dans include/ ni ds /include/mysql)
si j'inclu my_sys.h j'ai encore plus d'erreur de type n'etant pas declare. (my_boll par ex)
et sinon j'ai vu qu'il fallait ajouter -lmysqlclient lors de la compilation mais chez moi le compilateur me dit tout simplemen:
Code :
|
Marsh Posté le 03-01-2005 à 01:09:55
j'ai installe:
- mysql (descritpion: MySQL client programs and shared libraries. )
- mysql-devel
- mysql-server
[ffomnislash@Anubis ~]$ rpm -q mysql |
Marsh Posté le 03-01-2005 à 02:23:09
et que te renvoi 'cat /etc/ld.so.conf | grep libmysqlclient',
'ls /usr/lib/mysql | grep libmysqlclient' ?
Marsh Posté le 03-01-2005 à 07:38:04
[ffomnislash@localhost ~]$ cat /etc/ld.so.conf | grep libmysqlclient
[ffomnislash@localhost ~]$ ls /usr/lib/mysql | grep libmysqlclient
libmysqlclient.a
libmysqlclient_r.a
libmysqlclient_r.so
libmysqlclient_r.so.10
libmysqlclient_r.so.10.0.0
libmysqlclient.so
libmysqlclient.so.10
libmysqlclient.so.10.0.0
Marsh Posté le 03-01-2005 à 08:46:29
salut
Citation : et que te renvoi 'cat /etc/ld.so.conf | grep libmysqlclient' |
désolé, ptite erreur, c'est 'cat /etc/ld.so.conf | grep mysql' et si ca te donne rien de bon
essayes ça :
Citation : |
Puis je crois que je vais aller faire un peu dodo aussi
shutdown -h now
Marsh Posté le 03-01-2005 à 08:57:45
Il fallait compiler avec -L/usr/lib/mysql
La lib n'etait pas au bon endroit
Sinon apparemment la definition du type MEM_ROOT semble etre bonne
ouned-coding=> Tes en France ?
Marsh Posté le 03-01-2005 à 16:58:45
Citation : ouned-coding=> Tes en France ? |
meme dans le pays basque (pays du jambon de bayonne)
Marsh Posté le 04-01-2005 à 03:48:41
Code :
|
ben si t'as pas de mot de passe
Code :
|
Marsh Posté le 04-01-2005 à 13:28:26
je veux dire attention à ne pas confondre NULL et chaine vide. Enfin si tu veux être sûr que ça plante...
Marsh Posté le 04-01-2005 à 18:07:57
ok
Je vais changer de suite alors.
Ceci dit ce code n'est pas de moi, je l'ai copie d'un site
Marsh Posté le 06-01-2005 à 09:45:01
JagStang a écrit : encore pire. et tu t'étonnes que ça fonctionne pas ? |
Code :
|
c pas mal ce genre d'affectation
Marsh Posté le 06-01-2005 à 16:46:20
effectivement il manque des malloc mais pourtant le code fonctionne parfaitement ...
Marsh Posté le 06-01-2005 à 17:41:54
Il ne manque pas de malloc...
Ce sont des pointeurs et pas de tableaux de char...
passwd = "";
c'est pareil que
passwd = NULL;
et pareil que
passwd = 0;
et pareil que
passwd = "\0abcdefghijklmnopqrstuvwxyz";
Marsh Posté le 06-01-2005 à 23:02:19
rolphin a écrit : |
Euh, non ! La chaine "" existe, elle a une adresse non nulle, par contre c'est un tableau de 1 char qui vaut 0.
Citation : |
Non, pas du tout.
passwd = NULL; |
est pareil que
passwd = 0; |
d'autre part,
passwd = ""; |
est pareil que
passwd = "\0abcdefghijklmnopqrstuvwxyz"; |
Marsh Posté le 07-01-2005 à 09:27:08
rolphin a écrit : |
Marsh Posté le 02-01-2005 à 15:28:11
Me revoila
J'ai besoin de faire une requete en C dans une BdD mysql.
J'ai trouve quelques tuto qui explique plutot bien (ma requete est simple)
Le probleme se situe au niveau du devel de mysql,
Je suis sous fedora core 2 updater a fedora core 3.
J'ai installe mysql ainsi que mysql-devel avec apt.
J'ai bien les sources de develloppmeent mysql dans include mais j'ai un probleme avec l'une de ces sources lors de la compilation:
S'pa cool comme probleme
Voici ce que ces lignes contiennent:
Apparemment le type MEM_ROOT n'est pas connu ...
J'ai cherche sur google et quelques autre personnes ont eu ce probleme mais aucune reponse excepte un gars qui disait de reinstaller les devel, ce que j'ai fait ...
Comment resoudre ce pb ? des idees ?