Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 18/01/2015, à 17: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, à 18: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, à 01: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, à 09:44

Compte anonymisé

Re : erreur lors de la compilation de mysql sur c

Utilise un debuger comme nemiver (interface graphique pour gdb) par exemple.