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 de headers


Sujet :

C++

  1. #1
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Points : 403
    Points
    403
    Par défaut Pb de headers
    Bonjour,

    Je me sers de g++ avec linux.
    J' ai téléchargé myql++. Puis installé les fichiers en-têtes ( .h ) dans le répertoire /usr/include/mysql++/, la lib étant dans le répertoire /usr/lib/

    Je lance un test :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    #include <mysql++.h>
    #include <iostream>
     
    int main()
    { std::cout <<  "C' est bien vu jeannot" << std::endl ;
      return 0 ;
    }
    A la compilation j' obtiens le message d' erreur, impossible de trouver mysql++.h

    Comment faire en sorte que g++ aille chercher des "include" dans le répertoire /usr/include/mysql++/ ?
    Dois-je recommencer l' installation ? Dans un autre répertoire ? Dois-je modifier une variable d' environnement du compilateur g++ ?

    A vrai dire je suis perdu. Si quelqu' un pouvait m' orienter à ce sujet, grand merçi.

    Cordialement.

  2. #2
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Il faut soit:
    -mettre ce header avec ceux du compilo
    -soit faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    #include "mysql++/mysql++.h"
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Points : 403
    Points
    403
    Par défaut Pb de headers
    Bonsoir,

    Réponse de sériousme :
    -mettre ce header avec ceux du compilo
    Oui mais comment ?
    J' ai eu ce même problême avec l' installation de boost, et Luc Hermitte m' a donné une solution. Mais j' ai oublié la solution de Luc.
    Cordialement.

  4. #4
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Oui mais comment ?
    Directement dans le dossier "include" du compilo et pas dans le sous dossier "mysql++".
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  5. #5
    Membre expert Avatar de KiLVaiDeN
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    2 851
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 2 851
    Points : 3 481
    Points
    3 481
    Par défaut
    Tu peux aussi regarder du coté de l'option -I

    -I dir
    Add the directory dir to the list of directories to be searched for header files. See Search Path. Directories named by -I are searched before the standard system include directories. If the directory dir is a standard system include directory, the option is ignored to ensure that the default search order for system directories and the special treatment of system headers are not defeated (see System Headers) .
    K

  6. #6
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Mars 2006
    Messages
    58
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2006
    Messages : 58
    Points : 74
    Points
    74
    Par défaut
    L'option -I me semble une solution plus propre, ca évite de polluer le répertoire d'include du compilateur avec les fichiers .h des librairies diverses et variées.

  7. #7
    Membre éclairé
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Février 2004
    Messages
    644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Février 2004
    Messages : 644
    Points : 785
    Points
    785
    Par défaut
    D'après ce que je vois, si les libs de mysql++ sont dans /usr/lib et les headers dans /usr/include alors tu ne devrais pas avoir de problèmes.

    #include <mysql++/mysql++.h>


    Et au link, ça devrait se passer sans problèmes
    Nul ne peut mieux connaitre la connaissance qu'elle-même.

  8. #8
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    #include <mysql++/mysql++.h>
    Pas trés "légale" comme écriture:
    <...> c'est pour les headers du compilo, ceux présent à l'origine dans le dossier "include".
    "..." c'est pour ceux qui sont rajoutés par la suite.
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  9. #9
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Points : 403
    Points
    403
    Par défaut
    Bonsoir,
    ( avec linux )

    J' ai du modifier tous les entêtes de mysql++, en remplacant la déclaration
    # include < mysql.h>
    par
    # include <mysql/mysql.h>
    La déclaration
    #include <mysql++/mysql++.h>
    passe bien.
    Donc pas de problème, la compilation du code objet ça marche, mais impossible de lier.
    Pour info mes include sont dans /usr/include/mysql++, et j' ai semé les librairies de mysql++ dans /usr/lib et /usr/local/lib.
    Rien à faire le bourrin ne veut rien savoir.

    Et franchement je ne vois pas comment sortir de ce casse-tête ... Si vous pouvez m' aider je vous en remercie par avance.

    Cordialement.

  10. #10
    Membre confirmé Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Points : 488
    Points
    488
    Par défaut
    Citation Envoyé par seriousme
    Pas trés "légale" comme écriture:
    <...> c'est pour les headers du compilo, ceux présent à l'origine dans le dossier "include".
    "..." c'est pour ceux qui sont rajoutés par la suite.
    Ca dépend de l'implémentation.

    Mais en générale les fichiers entre <> seront recherchés dans une liste de dossiers ( $PATH, ligne de commande.. ).

    Et ceux entre "" dans le dossier courant.

    Donc pas de problème, la compilation du code objet ça marche, mais impossible de lier.
    Tu as linké libmysqlclient ?
    L'itération est humaine; la récursion, divine.

  11. #11
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Points : 403
    Points
    403
    Par défaut
    Bonsoir,

    (linux)

    Impossible de trouver la bibliothèque de liaison qui se trouve dans /usr/lib et /usr/local/lib .
    Tu as linké libmysqlclient ?
    Je n' y comprends rien !

    Cordialement.

  12. #12
    Membre confirmé Avatar de Mayti4
    Inscrit en
    Février 2004
    Messages
    442
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 442
    Points : 488
    Points
    488
    Par défaut
    Je n' y comprends rien !
    As-tu mis "-lmysqlpp -lmysqlclient" dans la ligne de commande ?
    L'itération est humaine; la récursion, divine.

  13. #13
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par seriousme
    Pas trés "légale" comme écriture:
    Tu as une reference?

    [/quote]<...> c'est pour les headers du compilo, ceux présent à l'origine dans le dossier "include".
    "..." c'est pour ceux qui sont rajoutés par la suite.[/QUOTE]

    Les regles avec lesquelles choisir entre <> et "" font pour moi partie des conventions de codage.

    J'essaie de rassembler les differents algo de recherche existant dans la page http://www.bourguet.org/cpp/include.html. Si vous connaissez des compilateurs qui ne permettent pas le premier comportement decrit ou qui permettent des choses differentes, ca m'interesse de la completer.
    Les MP ne sont pas là pour les questions techniques, les forums sont là pour ça.

  14. #14
    Inactif  

    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    534
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 534
    Points : 403
    Points
    403
    Par défaut
    Bonjour

    Mayti4 cite
    As-tu mis "-lmysqlpp -lmysqlclient" dans la ligne de commande ?
    Oui je me suis servi de l' option l sur la ligne de commande pour ces librairies qui se trouvent dans /usr/lib mais sous les noms de libmysqlpp et libmysqlclient. Avec extensions .so et .a .

    Rien n' y fait ld me renvoit systématiquement l' erreur impossible de trouver la librairie.
    J' ai tout essayé, nommé le chemin complet dans l' option l , nommé même le nom exact des différentes librairies, rien y fait.

    En fait je ne suis plus confronté à un problème de header mais de linkeur !

    C' est vraiment déprimant.
    Si vous avez une astuce ...

    Cordialement.

Discussions similaires

  1. [Réseau] Headers vers un serveur http
    Par gexti dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 04/05/2004, 14h58
  2. __declspec(dllexport) dans mon fichier header mais...?
    Par Jasmine dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 03/03/2004, 18h00
  3. mise en page (Header and Footer) en XML-XSL.
    Par christine dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 01/03/2004, 16h31
  4. [C#]dimension fixe footer et header datagrid
    Par Dos dans le forum ASP.NET
    Réponses: 2
    Dernier message: 24/01/2004, 17h45
  5. [MFC] image dans un header de CListCtrl
    Par tut dans le forum MFC
    Réponses: 3
    Dernier message: 11/06/2003, 15h26

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