IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Pb avec l'API Mysql :s


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Inscrit en
    Janvier 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 188
    Par défaut Pb avec l'API Mysql :s
    pour l'instant je voudrais juste me connecter, voici mon bout de code :
    (je me quasi copié le fichier connect_test.c fourni dans MySQL Server 5.0\examples\tests)
    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
     
    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
    #include "mysql.h"
     
    int main(int argc, char **argv){
        MYSQL *sock;
     
        if (!(sock=mysql_init(0))){
    	printf("Error initialisation de la struct mysql :(\n");
    	exit(1);
        }
        mysql_options(sock,MYSQL_READ_DEFAULT_GROUP,"connect");
        if (!mysql_real_connect(sock,"localhost","root","myPass!",NULL,3306,NULL,0)){
    	printf("Error connection...\n%s\n",mysql_error(sock));
    	exit(1);
        }
        printf("A priori cé good ^^\n");
        mysql_close(sock);
        exit(0);
    }
    voici le message d'erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    C:\sql>gcc -libmysqlclient -o test.exe sql
    .o
    c:\dev-cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot f
    ind -libmysqlclient
    collect2: ld returned 1 exit status
     
    C:\sql>
    Rq : dans mon dossier courant j'ai copié tout MySQL Server 5.0\include
    J'aimerai compiler directement à la main.
    je suppose qu'il faudrait surement que je passe par un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    gcc -c sql.c
    gcc -o test.exe sql.o libsql.a
    mais je ne sais pas où trouver ou comment produire la lib mysql :s
    je suis en train d'éplucher la doc mysql sur l'API en C mais cé en anglais et il y en a des tonnes :s du coup si quelqu'un pouvait me donner un chtit exemple...

  2. #2
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 371
    Par défaut
    Citation Envoyé par ramislebob
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    C:\sql>gcc -libmysqlclient -o test.exe sql
    .o
    c:\dev-cpp\bin\..\lib\gcc\mingw32\3.4.2\..\..\..\..\mingw32\bin\ld.exe: cannot f
    ind -libmysqlclient
    collect2: ld returned 1 exit status
     
    C:\sql>
    l'instruction d'édtion de liens pour mysqlclient est -lmysqlclient et non -libmysqlclient
    De plus, tu dis que tu n'as pas la bibliothèque compilée (le fichier .a). Je vois que tu utilises mingw, et la libmysql existe déjà compilée pour mingw sous la forme d'un devpack.

  3. #3
    Membre confirmé

    Inscrit en
    Janvier 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 188
    Par défaut
    Citation Envoyé par khayyam90
    l'instruction d'édtion de liens pour mysqlclient est -lmysqlclient et non -libmysqlclient
    De plus, tu dis que tu n'as pas la bibliothèque compilée (le fichier .a). Je vois que tu utilises mingw, et la libmysql existe déjà compilée pour mingw sous la forme d'un devpack.
    je ne sais pas ce qu'est un devpack.
    j'ai appris à prog sous unix à la main avec des makefile, je débute en pog sous windows et n'ai jamais utilisé de soft avec création de projet... ça me rebute un peu :s
    je viens d'aller fouiller un peu dans C:\Dev-Cpp\, il n'y a pas de libmysql .a
    j'ai Dev-C++ 4.9.9.2 avec mingw32\3.4.2.

    Rq : cé sur la doc MySql que j'avais vu libmysqlclient comme linker :s

  4. #4
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 371
    Par défaut
    un devpack est une bibliothèque déjà compilée et prête à l'emploi pour devc++
    vas dans Outils > nouvelles versions packages >tu sélectionnnes le serveur devpack.org, check for update et tu télécharges celui qui s'appelle libmysql.

    Ca va t'installer tous les headers nécessaires, le(s) .a et les éventuelles dlls.

    En fait, devc++ est un environnement qui gère tout le makefile pour toi.
    Pour compiler le projet, il faudra créer un projet C, lui associer ton(tes) fichiers(s) source, et spécifier les options de compilation dans les options du projet.

  5. #5
    Membre confirmé

    Inscrit en
    Janvier 2006
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 188
    Par défaut
    merci beaucoup, ça m'a permis de récup le fichier libmysql.a
    je programme uniquement sous gvim et je ne veux pas changer d'éditeur.
    J'aimerais bien continuer à tout faire à la main sans logiciel.
    là ça marche :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    C:\sql>gcc -c sql.c
    C:\sql>gcc -o test.exe sql.o libmysql.a
    C:\sql>test
    A priori cé good ^^
    C:\sql>
    Cé quoi exactement un fichier .a ? je suppose que c'est un équivalent des .o
    Pourquoi on n'importe pas directement des dll ?
    Tout ça est un peu flou pour moi, si quelqu'un veut bien m'éclairer ou me donner un bon link ^^
    Une petite doc sur la génération des fichier .a m'intéresse aussi :p

  6. #6
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 371
    Par défaut
    Citation Envoyé par ramislebob
    merci beaucoup, ça m'a permis de récup le fichier libmysql.a
    je programme uniquement sous gvim et je ne veux pas changer d'éditeur.
    comme tu veux.
    Cé quoi exactement un fichier .a ? je suppose que c'est un équivalent des .o
    Pourquoi on n'importe pas directement des dll ?
    Tout ça est un peu flou pour moi, si quelqu'un veut bien m'éclairer ou me donner un bon link ^^
    Une petite doc sur la génération des fichier .a m'intéresse aussi :p
    un .a est le résultat de la compilation d'une bibliothèque. Il s'agit d'une compilation statique, par opposition à la compilation dynamique.
    dynamique produit des dll et so. statique, c'est .a et .lib
    le .a n'est pas exactement l'équivalent des .o. En effet, tu peux voir que tu as aussi des .o.

    J'ai trouvé ça., des fois que ça puisse t'aider.

Discussions similaires

  1. [MySQL-5.5] Pb avec l'API MYSQL en C
    Par niagara444 dans le forum Requêtes
    Réponses: 0
    Dernier message: 30/05/2013, 10h53
  2. pb avec l'api c pour mysql
    Par omw1606 dans le forum Visual C++
    Réponses: 3
    Dernier message: 23/06/2007, 14h06
  3. probleme avec API mysql
    Par tyson75 dans le forum C++Builder
    Réponses: 7
    Dernier message: 08/06/2007, 20h00
  4. API MySql avec DBgrid
    Par boopix dans le forum C++Builder
    Réponses: 6
    Dernier message: 18/03/2007, 16h59
  5. Api mysql avec Devc++, erreur de compilation
    Par Viiince dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 15/06/2004, 17h19

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo