#1 Le 18/01/2015, à 16:40
- mah92
erreur lors de la compilation de mysql sur c
salut !
bon je voulais compiler mysql sur le langage c mais a chaque fois il me retourne une erreur comme:
theambreezie@hamydu:~/Documents/prog/c/mysql-c$ gcc -o test $(mysql_config --libs) test.c $(mysql_config --cflags)
/tmp/ccgrc4Xg.o: In function `main':
/home/theambreezie/Documents/prog/c/mysql-c/test.c:17: undefined reference to `mysql_init'
/home/theambreezie/Documents/prog/c/mysql-c/test.c:18: undefined reference to `mysql_real_connect'
/home/theambreezie/Documents/prog/c/mysql-c/test.c:20: undefined reference to `mysql_error'
/home/theambreezie/Documents/prog/c/mysql-c/test.c:23: undefined reference to `mysql_query'
/home/theambreezie/Documents/prog/c/mysql-c/test.c:25: undefined reference to `mysql_error'
/home/theambreezie/Documents/prog/c/mysql-c/test.c:28: undefined reference to `mysql_use_result'
/home/theambreezie/Documents/prog/c/mysql-c/test.c:30: undefined reference to `mysql_fetch_row'
/home/theambreezie/Documents/prog/c/mysql-c/test.c:32: undefined reference to `mysql_free_result'
/home/theambreezie/Documents/prog/c/mysql-c/test.c:33: undefined reference to `mysql_close'
collect2: ld a retourné 1 code d'état d'exécution
mon code est :
#include <stdio.h>
#include <mysql/mysql.h>
#include <stdlib.h>
#include <string.h>
main (int argc, char *argv[])
{
char * host="localhost";
char * user="root";
char * passwd="hamidou00";
char * bd="dic1";
MYSQL *conn;
MYSQL_ROW row;
MYSQL_RES *resultat;
mysql_init(NULL);
if (mysql_real_connect(conn,host,user,passwd,bd,0,NULL,0))
{
fprintf(stderr, "%s\n",mysql_error(conn) );
exit (1);
}
if (mysql_query(conn,"SHOW TABLES"))
{
fprintf(stderr, "%s\n",mysql_error(conn) );
exit (1);
}
resultat=mysql_use_result(conn);
printf("MySQL Tables in mysql database:\n");
row=mysql_fetch_row(resultat);
printf("%s\n",row[0] );
mysql_free_result(resultat);
mysql_close(conn);
}
Hors ligne
#2 Le 18/01/2015, à 17:44
- Compte anonymisé
Re : erreur lors de la compilation de mysql sur c
Salut,
Faut mettre les lib à linker à la fin :
gcc -o test $(mysql_config --cflags) test.c $(mysql_config --libs)
Mauvaise idée d'appeler un exécutable test car c'est un programme gnu toujours installé sous linux.
#3 Le 20/01/2015, à 00:53
- mah92
Re : erreur lors de la compilation de mysql sur c
ça a marche mais quand j’exécute l’exécutant ça me donne:
theambreezie@hamydu:~/Documents/prog/c/mysql-c$ gcc -o test $(mysql_config --cflags) test.c $(mysql_config --libs)
theambreezie@hamydu:~/Documents/prog/c/mysql-c$ ./test
Erreur de segmentation (core dumped)
Hors ligne
#4 Le 20/01/2015, à 08:44
- Compte anonymisé
Re : erreur lors de la compilation de mysql sur c
Utilise un debuger comme nemiver (interface graphique pour gdb) par exemple.