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 :

Utilisation de MySQL++ dans un projet


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre tr�s actif
    Homme Profil pro
    Second de cuisine
    Inscrit en
    Avril 2005
    Messages
    193
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Second de cuisine
    Secteur : Alimentation

    Informations forums :
    Inscription : Avril 2005
    Messages : 193
    Par d�faut Utilisation de MySQL++ dans un projet
    Bonjour,

    apr�s moultes arrachages de cheveux... je n'arrive point � utiliser la librairie mysql++ dans mes projets.

    J'ai install� les derniers:
    C::B - C:\Program Files (x86)\CodeBlocks
    mingw - C:\MinGW\
    mysql server 5.6 - C:\Program Files\MySQL\MySQL Server 5.6
    le dernier mysql connector - C:\Program Files (x86)\MySQL\Connector


    J'ouvre le projet mysql++
    -> si je le compile en DLL: pas de .a ni de .dll
    -> si je le compile en static: j'ai un fichier .a
    mais ...

    -------------- Build: Debug in Master (compiler: GNU GCC Compiler)---------------

    mingw32-g++.exe -L"C:\Program Files (x86)\CodeBlocks\MinGW\x86_64-w64-mingw32\lib" -LC:\MinGW\lib\gcc\mingw32\4.7.2 -o bin\Debug\Master.exe obj\Debug\Shared\Database\Database.o obj\Debug\Shared\Database\DatabaseStocks.o obj\Debug\Shared\Server.o obj\Debug\Shared\Sockets\Acceptor.o obj\Debug\Shared\Sockets\ClientSocket.o obj\Debug\Shared\Sockets\Impl\IpAddress.o obj\Debug\Shared\Sockets\Impl\PingPong.o obj\Debug\Shared\Sockets\Impl\Socket.o obj\Debug\Shared\Sockets\Networker.o obj\Debug\Shared\Sockets\Packets\Creator.o obj\Debug\Shared\Sockets\Packets\Packet.o obj\Debug\Shared\Sockets\Packets\Reader.o obj\Debug\Shared\Sockets\Packets\Writer.o obj\Debug\Shared\Sockets\Selector.o obj\Debug\Shared\Sockets\ServerSocket.o obj\Debug\Shared\Sockets\Session.o obj\Debug\Shared\stdext.o obj\Debug\Shared\thread.o obj\Debug\Master\main.o -s -lws2_32 -lmysql -lpthread -lmysqlpp_d



    c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../libmysql.dll: file not recognized: File format not recognized
    collect2.exe: error: ld returned 1 exit status
    Process terminated with status 1 (0 minutes, 0 seconds)
    0 errors, 0 warnings (0 minutes, 0 seconds)

    De plus, en changeant un param�tre, regardez le r�sultat..

    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
    -------------- Build: Debug in Master (compiler: GNU GCC Compiler)---------------
    
    mingw32-g++.exe -LC:\MinGW\lib\gcc\mingw32\4.7.2 -L"C:\Program Files\MySQL\MySQL Server 5.6\lib"  -o bin\Debug\Master.exe obj\Debug\Shared\Database\Database.o obj\Debug\Shared\Database\DatabaseStocks.o obj\Debug\Shared\Server.o obj\Debug\Shared\Sockets\Acceptor.o obj\Debug\Shared\Sockets\ClientSocket.o obj\Debug\Shared\Sockets\Impl\IpAddress.o obj\Debug\Shared\Sockets\Impl\PingPong.o obj\Debug\Shared\Sockets\Impl\Socket.o obj\Debug\Shared\Sockets\Networker.o obj\Debug\Shared\Sockets\Packets\Creator.o obj\Debug\Shared\Sockets\Packets\Packet.o obj\Debug\Shared\Sockets\Packets\Reader.o obj\Debug\Shared\Sockets\Packets\Writer.o obj\Debug\Shared\Sockets\Selector.o obj\Debug\Shared\Sockets\ServerSocket.o obj\Debug\Shared\Sockets\Session.o obj\Debug\Shared\stdext.o obj\Debug\Shared\thread.o obj\Debug\Master\main.o   -s  -lws2_32 -lpthread -lmysqlclient -lmysqlpp_d 
    
    
    obj\Debug\Shared\Database\Database.o:Database.cpp:(.text+0x3d): undefined reference to `_imp___ZN7mysqlpp10ConnectionC1Eb'
    obj\Debug\Shared\Database\Database.o:Database.cpp:(.text+0x81): undefined reference to `_imp___ZN7mysqlpp10Connection7connectEPKcS2_S2_S2_j'
    obj\Debug\Shared\Database\Database.o:Database.cpp:(.text+0xb4): undefined reference to `_imp___ZNK7mysqlpp10Connection5errorEv'
    obj\Debug\Shared\Database\Database.o:Database.cpp:(.text+0x134): undefined reference to `_imp___ZN7mysqlpp10ConnectionD1Ev'
    obj\Debug\Shared\Database\Database.o:Database.cpp:(.text+0x18b): undefined reference to `_imp___ZN7mysqlpp10Connection5queryERKSs'
    obj\Debug\Shared\Database\Database.o:Database.cpp:(.text+0x1db): undefined reference to `_imp___ZN7mysqlpp10Connection5queryEPKc'
    obj\Debug\Shared\Database\Database.o:Database.cpp:(.text+0x47d): undefined reference to `_imp___ZTVN7mysqlpp5QueryE'
    obj\Debug\Shared\Database\Database.o:Database.cpp:(.text+0x6a0): undefined reference to `_imp___ZN7mysqlpp10Connection5queryERKSs'
    obj\Debug\Shared\Database\Database.o:Database.cpp:(.text+0x6b3): undefined reference to `_imp___ZTVN7mysqlpp5QueryE'
    obj\Debug\Shared\Database\Database.o:Database.cpp:(.text+0x6c2): undefined reference to `_imp___ZTVN7mysqlpp5QueryE'
    obj\Debug\Shared\Database\Database.o:Database.cpp:(.text+0x82a): undefined reference to `_imp___ZTVN7mysqlpp18OptionalExceptionsE'
    obj\Debug\Shared\Database\Database.o:Database.cpp:(.text+0x839): undefined reference to `_imp___ZTCN7mysqlpp5QueryE0_So'
    obj\Debug\Shared\Database\Database.o:Database.cpp:(.text+0x9ba): undefined reference to `_imp___ZTVN7mysqlpp9ExceptionE'
    obj\Debug\Shared\Database\Database.o:Database.cpp:(.text+0x9d3): undefined reference to `_imp___ZTVN7mysqlpp8BadQueryE'
    obj\Debug\Shared\Database\Database.o:Database.cpp:(.text$_ZN7mysqlpp18OptionalExceptionsD1Ev[__ZN7mysqlpp18OptionalExceptionsD1Ev]+0xfffff429): undefined reference to `_imp___ZTVN7mysqlpp18OptionalExceptionsE'
    c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../../mingw32/bin/ld.exe: obj\Debug\Shared\Database\Database.o: bad reloc address 0x1 in section `.text$_ZN7mysqlpp18OptionalExceptionsD1Ev[__ZN7mysqlpp18OptionalExceptionsD1Ev]'
    Quelqu'un aurait-il une id�e?

    merci,

    nico

  2. #2
    r0d
    r0d est d�connect�
    Membre exp�riment�

    Homme Profil pro
    D�veloppeur informatique
    Inscrit en
    Ao�t 2004
    Messages
    4 299
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rh�ne Alpes)

    Informations professionnelles :
    Activit� : D�veloppeur informatique

    Informations forums :
    Inscription : Ao�t 2004
    Messages : 4 299
    Billets dans le blog
    2
    Par d�faut
    Bonjour,

    je ne sais pas pr�cis�ment quel est ton probl�me, mais je propose une piste:
    les fichiers .o sont les fichiers objets (.cpp compil�) pour linux
    les fichiers .a sont les biblioth�ques statiques pour linux.
    Or visiblement tu compiles sous windows.

  3. #3
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Salut,
    Citation Envoy� par r0d Voir le message
    Bonjour,

    je ne sais pas pr�cis�ment quel est ton probl�me, mais je propose une piste:
    les fichiers .o sont les fichiers objets (.cpp compil�) pour linux
    les fichiers .a sont les biblioth�ques statiques pour linux.
    Or visiblement tu compiles sous windows.
    En fait, .o vs .obj et .a vs lib ne sont que des conventions propres aux outils qui les emploient

    sous windows, on a tellement l'habitude de travailler avec visual studio (ou borland, qui a d�cid� de suivre la m�me convention) qu'on trouve essentiellement des obj et des lib, mais voil�... gcc vient de linux et suit tout simplement les conventions linux (.o et .a)

    Ce qui importe essentiellement, c'est que les ex�cutables soient suffix�s de .exe et les dll (si on en cr�e) soient suffix�es .dll

    Et comme toute la suite d'outils suit ces conventions, ce n'est certainement pas l'origine du probl�me, merci d'avoir essay�
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

  4. #4
    Membre tr�s actif
    Homme Profil pro
    Second de cuisine
    Inscrit en
    Avril 2005
    Messages
    193
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Second de cuisine
    Secteur : Alimentation

    Informations forums :
    Inscription : Avril 2005
    Messages : 193
    Par d�faut
    Citation Envoy� par r0d Voir le message
    Bonjour,

    je ne sais pas pr�cis�ment quel est ton probl�me, mais je propose une piste:
    les fichiers .o sont les fichiers objets (.cpp compil�) pour linux
    les fichiers .a sont les biblioth�ques statiques pour linux.
    Or visiblement tu compiles sous windows.
    Comme koala, ce n'est pas le probl�me.

    Mon code fonctionnait parfaitement, puis j'ai mis a jour tout mon environnement, et la c'est fini

  5. #5
    Membre tr�s actif
    Homme Profil pro
    Second de cuisine
    Inscrit en
    Avril 2005
    Messages
    193
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Second de cuisine
    Secteur : Alimentation

    Informations forums :
    Inscription : Avril 2005
    Messages : 193
    Par d�faut
    Tiens j'avance un petit peu


    quand je link avec -libmysql cela veut dire que je vais linker avec la DLL
    et mysqlclient, c'est un link statique
    Or la librairie mysql se trouve dans le dossier MySQL Server 5.6, et ca on peut pas le compiler soit meme je crois !

    l'erreur viendrait-elle de ma compilation de MySQL++ ?

  6. #6
    Membre tr�s actif
    Homme Profil pro
    Second de cuisine
    Inscrit en
    Avril 2005
    Messages
    193
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Second de cuisine
    Secteur : Alimentation

    Informations forums :
    Inscription : Avril 2005
    Messages : 193
    Par d�faut
    Pour supprimer encore un truc, j'ai vir� MySQL++, je passe directement sur Connector++ pour MySQL

    donc je compile avec:
    mingw32-g++.exe -LC:\MinGW\lib\gcc\mingw32\4.7.2 -L"C:\Program Files\MySQL\Connector C++ 1.1.0\lib" -L"C:\Program Files\MySQL\MySQL Server 5.6\lib" -o bin\Debug\Master.exe
    /* les .o */
    -s -lws2_32 -lpthread "C:\Program Files\MySQL\MySQL Server 5.6\lib\libmysql.lib" "C:\Program Files\MySQL\Connector C++ 1.1.0\lib\opt\mysqlcppconn.lib"

    Et bah encore une fois....

    obj\Debug\Shared\Database\Database.oatabase.cpp.text+0x259): undefined reference to `_imp___ZN3sql5mysql19get_driver_instanceEv'
    Une id�e?

  7. #7
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    F�vrier 2006
    Messages
    2 155
    D�tails du profil
    Informations personnelles :
    �ge : 41
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2006
    Messages : 2 155
    Par d�faut
    Je sais pas si cette lib a �volu� depuis le temps o� je l'avais utilis� mais sa structure "templat�" �tait vachement mal faite, et du coup on pouvait pas l'utiliser dans plusieurs fichiers .cpp diff�rent sans hack.
    Sinon effectivement on arrivait plus � linker.
    On avait externaliser tout � coup de visiteur avec Alp � l'�poque !

    Bref, perso je prendrai une autre lib, genre Qt si tu l'utilises d�j�...

  8. #8
    Expert �minent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activit� : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par d�faut
    Pour, quand m�me essayer de r�pondre � ta question...

    Je pr�sumes que tu te seras "content�" de t�l�charger un installateur quelconque, et que cette version ait �t� g�n�r�e avec un autre compilateur que le tien (soit une autre version de gcc, soit carr�ment VC ) ce que semble confirmer la petite
    ligne c:/mingw/bin/../lib/gcc/mingw32/4.7.2/../../../libmysql.dll: file not recognized: File format not recognized
    Si ca a �t� compil� avec VC, il est possible de g�n�rer une biblioth�que d'import au bon format en utilisant des outils comme dlltools.

    Mais tu aurais peut etre carr�ment int�r�t � prendre les sources du connector (que l'on trouve tout en bas de la page qui est consacr�e � son t�l�chargement) et � le compiler, si tu t'en sens le courage
    A m�diter: La solution la plus simple est toujours la moins compliqu�e
    Ce qui se con�oit bien s'�nonce clairement, et les mots pour le dire vous viennent ais�ment. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 f�vrier 2014
    mon tout nouveau blog

Discussions similaires

  1. [NVSG] Utilisation du NVSG dans vos projets
    Par Kurisu dans le forum API graphiques
    R�ponses: 0
    Dernier message: 12/12/2008, 15h30
  2. R�ponses: 3
    Dernier message: 03/05/2008, 15h03
  3. [MySQL] Utilisation PHP MySQL dans le cadre de l'am�lioration d'un logiciel
    Par lince102 dans le forum PHP & Base de donn�es
    R�ponses: 6
    Dernier message: 01/03/2008, 23h14
  4. Utilisation de MySQL dans C::B
    Par Rupella dans le forum Code::Blocks
    R�ponses: 4
    Dernier message: 19/07/2006, 09h18
  5. [MFC] Utiliser la MFC dans un projet ATL
    Par glKabuto dans le forum MFC
    R�ponses: 6
    Dernier message: 24/04/2006, 15h17

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