Bonjour je cherche à faire une fonction qui permet de faire des requete sql (sous mysql) en C. Je précise que je suis sous un environement linux (Fedora6). Comme je dois utilisé le fichier compilé sur un système embarqué, j'emploi un compilateur gcc spécial pour ce système embarqué comme ca je peux développer sur mon pc
Voici le code que j'emploi :
Il y encore du code dans le programme mais c'est cette partie qui nous intersse.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 #include <stdio.h> #include <mysql/mysql.h> #define MYSQL_HOST "127.0.0.1" #define MYSQL_DB "mabase" #define MYSQL_LOGIN "root" #define MYSQL_PASSWD "" void requete(unsigned char *querry) { MYSQL mysql; MYSQL_RES *result; MYSQL_ROW row; mysql_init(&mysql); if (!mysql_connect(&mysql,'127.0.0.1','root','root')) { return -1; } if (mysql_select_db(&mysql,MYSQL_DB)) { mysql_close(&mysql); return -1; } mysql_query(&mysql,requete); result = mysql_use_result(&mysql); while((row = mysql_fetch_row(result))) { printf("%s",row[1]); fflush(stdout); } mysql_close(&mysql); return 0; }
Avec ca j'obtient comme erreur :
Je compile avec cette ligne de commande :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 lcd.c: In function `requete': lcd.c:152: warning: implicit declaration of function `mysql_connect' lcd.c:152:35: warning: character constant too long for its type lcd.c:152:47: warning: multi-character character constant lcd.c:152:54: warning: multi-character character constant lcd.c:153: warning: `return' with a value, in function returning void lcd.c:157: warning: `return' with a value, in function returning void lcd.c:159: warning: passing arg 2 of `mysql_query' from incompatible pointer type lcd.c:166: warning: `return' with a value, in function returning void /home/powerdale/usr/local/opt/crosstool/arm-linux/gcc-3.3.4-glibc-2.3.2/bin/../lib/gcc-lib/arm-linux/3.3.4/../../../../arm-linux/bin/ld: skipping incompatible /usr/lib/mysql/libmysqlclient.so when searching for -lmysqlclient /home/powerdale/usr/local/opt/crosstool/arm-linux/gcc-3.3.4-glibc-2.3.2/bin/../lib/gcc-lib/arm-linux/3.3.4/../../../../arm-linux/bin/ld: skipping incompatible /usr/lib/mysql/libmysqlclient.a when searching for -lmysqlclient /home/powerdale/usr/local/opt/crosstool/arm-linux/gcc-3.3.4-glibc-2.3.2/bin/../lib/gcc-lib/arm-linux/3.3.4/../../../../arm-linux/bin/ld: cannot find -lmysqlclient collect2: ld returned 1 exit status
Voila j'aimerai savoir si :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ./arm-linux-gcc -Wall -o lcd lcd.c -L/usr/lib/mysql -lmysqlclient
1. le code C est correcte
2. si je fais bien le lien vers les librarie mysql car visiblement il trouve pas mysqlclient
enfin si vous avez d'autres idées sur ce qui pourrait provoquer ce problème elles sont les bienvenue. Je peux aussi donnez plus d'explication si vous en avez besoin.
Merci d'avance
PS: je sais pas si je suis dans le bon forum car ca reprend des compétence de différents forums mais bon je penses que ca se rapproche le plus de celui-ci.
Partager