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

Visual C++ Discussion :

Probleme avec mysql++ mysqlpp.lib introuvable


Sujet :

Visual C++

  1. #1
    Candidat au Club
    Inscrit en
    Février 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Probleme avec mysql++ mysqlpp.lib introuvable
    Bonjour à tous,
    Voila, J'essaye de faire communiquer visual C++ (2005 express) avec mysql(4.1) en c++ sous windows xp. D'abord j'ai vu qu'il existait l'api c fournit lors de l'installation de mysql mais comme je voulais du c++ je suis passé a mysql++ (version 2.3.2) puis par défaut j'ai essayé la 3.0.0 mais je bute sur un problème après plus d'une semaine de recherches, d'essais et de galère!
    Ma question est la suivante:
    J'ai lu dans de multiples forums que pour installer mysql++ il suffisait de dezipper. Ce que j'ai fais. Puis j'ai voulu essayer l'exemple winform fournit. J'ai bien renseigné le fichier lib de mysql++ pour les bibliothèques. Mais sans aucune modif de l'exemple j'ai un message d'erreur:

    1>LINK : fatal error LNK1104: cannot open file 'mysqlpp.lib'

    Je comprend rien il prend bien le fichier mysql++.h mais pas le namespace.
    J'ai plus d'idée.
    Ca serait super gentil de m'aiguiller sur un tutorial complet sur l install et l utilisation de mysql++ ou de m 'indiquer le probleme(versions, libraries, configuration, includes...)

    Cordialement.

  2. #2
    Membre habitué
    Inscrit en
    Avril 2002
    Messages
    180
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 180
    Points : 157
    Points
    157
    Par défaut
    je croi que tu doit lui dire ou ce trouve mysqlpp.lib
    essaie de copie le fochier mysqlpp.lib dans ton repertoire /release

    et/ou
    edite les preference de ton project
    Project ->properties->linker->General->Additional librairy directories

  3. #3
    Candidat au Club
    Inscrit en
    Février 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut
    J ai essayé de rajouter les chemins pour libraries supplementaires(chemins de mysql++, mysql, visual...). Toujours introuvables, mon problème c'est que je ne trouve meme pas le fichier mysqlpp.lib. Dans le programme il existe une ligne qui include <mysql++.h> et dans ce fichier est decrit un namespace mysqlpp tel que ci dessous:
    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
     
     
    #ifndef MYSQLPP_MYSQLPP_H
    #define MYSQLPP_MYSQLPP_H
     
    /// \brief Encode MySQL++ library version number.
    ///
    /// This macro takes major, minor and bugfix numbers (e.g. 1, 2, and 3)
    /// and encodes them like 0x010203.
    #define MYSQLPP_VERSION(major, minor, bugfix) \
    		(((major) << 16) | ((minor) << 8) | (bugfix))
     
    /// \brief Get the library version number that mysql++.h comes from
    ///
    /// MySQL++ Version number that the mysql++.h header file comes from,
    /// encoded by MYSQLPP_VERSION macro.  Compare this value to what
    /// mysqlpp_lib_version() returns in order to ensure that your program
    /// is using header files from the same version of MySQL++ as the
    /// actual library you're linking to.
    #define MYSQLPP_HEADER_VERSION MYSQLPP_VERSION(2, 3, 2)
     
    // This #include order gives the fewest redundancies in the #include
    // dependency chain.
    #include "connection.h"
    #include "query.h"
    #include "sql_types.h"
     
    namespace mysqlpp {
     
    /// \brief Get the current MySQL++ library version number
    ///
    /// MySQL++ version number that the program is actually linked to,
    /// encoded by MYSQLPP_VERSION macro.  Compare this value to the
    /// MYSQLPP_HEADER_VERSION constant in order to ensure that your
    /// program is using header files from the same version of MySQL++ as
    /// the actual library you're linking to.
    MYSQLPP_EXPORT unsigned int get_library_version();
     
    } // end namespace mysqlpp
     
    #endif // !defined(MYSQLPP_MYSQLPP_H)

    Je sais pas trop ou trouver le mysqlpp.lib s'il existe en tant que fichier. Si quelqu'un peu me l'envoyer pour que je le mette quelque part mais etant donné que le projet est l'exemple origine du mysql++ 2.3.2 je pensait que tout y était: prog, libraries, ressources...

    voila je suis un peu perdu, mon cerveau va fondre sur place, si quelqu'un a dejas reussi a faire marcher mysql++ je suis preneur. Si quelqu'un a une solution simple et bien decrite quelque part pour taper des requetes vers mysql (4.1) en C++ et pas en C à partire de visual c++, je suis preneur aussi!



    Merci

  4. #4
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 626
    Points : 30 684
    Points
    30 684
    Par défaut
    Salut, et bienvenue sur le forum.

    Il faut être attentif à une chose: un fichier .h /.hpp et similaires ne représente qu'un fichier d'en-tête.

    Ce fichier a pour seule vocation de faire de manière à ce que le compilateur sache qu'il existe, dans l'exemple que tu donne, un espace de nommage qui répond au doux nom de mysqlpp et dans lequel on trouve une fonction nommée get_library_version().

    La raison en est simple: le compilateur lit le code "de haut en bas et de gauche à droite".

    De la même manière que, quand tu lis un livre, tu ne sais pas ce qui se passe à la page 120 quand tu n'est qu'à la page 100, le compilateur ne connait que ce qu'il a déjà croisé, et la directive préprocesseur include lui permet... d'avoir croisé le contenu du fichier inclu.

    Mais il faut se rappeler que le processus de création d'un exécutable se fait en trois temps:
    • Le préprocessing: gestion de toutes les macros préprocesseurs rencontrées (telles que include, qui copie le contenu du fichier d'en-tête là où la directive apparait)
    • La création de fichiers objets: Le compilateur crée un code exécutable par le processeur, mais laisse des symboles pour représenter les différents appels de fonctions (du moins pour les fonctions pour lesquelles il n'a pas directement accès, ce qui est le cas de toutes les fonctions qui ne sont pas définies dans l'unité de compilation en cours de traitement)
    • L'édition des liens: L'éditeur de liens va parcourir l'ensemble des fichiers objets, le regrouper dans un seul et même fichier, et remplacer les symboles créés plus haut par les adresses auxquelles commencent effectivement toutes ces fonctions dont le code exécutable n'était pas accessible avant.

    (c'est simplifié, mais cela te permettra de comprendre)

    Quand tu fais appel à une bibliothèque externe (comme ici à libmysql++), le processus de création de fichiers objets peut se contenter de savoir que la fonction existe, mais, l'éditeur de liens doit savoir... où trouver le code exécutable

    Et, même si le fichier ".lib" correspondant se trouve exactement au même endroit que tous les autres, ( sous visual C++, c'est par défaut dans le dossier C:\Program Files\Microsoft Visual Studio 8\VC\lib), il n'empêche qu'il faille indiquer quel fichier ".lib" utiliser.

    Pour se faire, il faut suivre le chemin indiqué par philippe V

  5. #5
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    il ne suffit pas de dezipper le package de mysql++ ,il faut construire le projet..
    il y a un fichier solution pour visual studio 2005.
    construit tes bibliothéques debug et release .
    note la distrib de mysql fournit le .lib d'accés en C ,il faut aussi que la dll soit dans le path de recherche. (c'est proposé à l'installation de mysql).

  6. #6
    Candidat au Club
    Inscrit en
    Février 2008
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 3
    Points : 2
    Points
    2
    Par défaut c bon
    C'est bon j'ai simplement generé le fichier mysql++_mysqlpp.sln qui m'a créé un dossier debug avec mysqlpp.lib et dll. Et ca marche!!! Merci a tous!!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme avec mysql
    Par rane dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 29/06/2006, 08h40
  2. probleme avec mysql
    Par griese dans le forum IIS
    Réponses: 6
    Dernier message: 09/06/2006, 17h04
  3. Probleme avec mysql
    Par rane dans le forum Requêtes
    Réponses: 3
    Dernier message: 06/06/2006, 14h10
  4. problem avec mysql -h ip
    Par naourass dans le forum Requêtes
    Réponses: 5
    Dernier message: 11/11/2005, 12h53
  5. Probleme avec Mysql
    Par kevinss dans le forum Administration
    Réponses: 5
    Dernier message: 31/10/2003, 10h43

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