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

Bibliothèques Discussion :

comment integrer log4cplus ?


Sujet :

Bibliothèques

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2009
    Messages : 42
    Points : 31
    Points
    31
    Par défaut comment integrer log4cplus ?
    Bonjour à tous,

    je suis novice dans la conception de projet et très souvent, j'arrive à mes fins grâce à beaucoup d'internautes qui ont posé les questions avant moi.

    Aujourd'hui, j'ai bô chercher sur la toile, en vain.

    Alors je me jette à l'eau et vous pose la question aux utilisateurs de log4cplus: Comment avez-vous integré cette librairie à votre projet?

    Personnellement, voici les étapes que j'ai faites:
    - ayant deja travaillé sur eclipse pour java par le passé, j'ai installé ce quasi meme environnement pour c++.
    - apres telechargement de log4cplus, je n'ai trouvé aucune explication pour compiler avec mingw alors j'ai installé cygwin et en 2 lignes de commande, j'ai pu compiler la librairie, ce qui m'a donné des .a et .dll
    - j'ai ensuite créé un projet sous eclipse avec l'exemple "Hello world" donné sur le site de log4cplus. Dans la configuration de build, j'ai ajouté un lien au repertoire contenant les .a et .dll, un lien au repertoire include de log4cplus. J'ai laissé le compilateur externe par défaut et lancé le build. Mais le link n'a pas marché (cf le log de build plus bas).

    Merci de votre aide.
    Zerbynette

    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
     
    **** Build of configuration Debug for project TestLogger ****
     
    make all 
    Building file: ../main/src/TestLogger.cpp
    Invoking: GCC C++ Compiler
    g++ -I"D:\eclipseWorkspace\TestLogger\ThirdParties\log4cplus\include" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"main/src/TestLogger.d" -MT"main/src/TestLogger.d" -o"main/src/TestLogger.o" "../main/src/TestLogger.cpp"
    Finished building: ../main/src/TestLogger.cpp
     
    Building target: TestLogger.exe
    Invoking: MinGW C++ Linker
    g++ -L"D:\eclipseWorkspace\TestLogger\main\lib" -o"TestLogger.exe"  ./main/src/TestLogger.o   
    ./main/src/TestLogger.o: In function `main':
    D:/eclipseWorkspace/TestLogger/Debug/../main/src/TestLogger.cpp:21: undefined reference to `__imp___ZN9log4cplus6Logger19getDefaultHierarchyEv'
    D:/eclipseWorkspace/TestLogger/Debug/../main/src/TestLogger.cpp:21: undefined reference to `__imp___ZN9log4cplus17BasicConfiguratorC1ERNS_9HierarchyE'
    D:/eclipseWorkspace/TestLogger/Debug/../main/src/TestLogger.cpp:22: undefined reference to `log4cplus::PropertyConfigurator::configure()'
    D:/eclipseWorkspace/TestLogger/Debug/../main/src/TestLogger.cpp:26: undefined reference to `__imp___ZN9log4cplus6Logger11getInstanceERKSs'
    D:/eclipseWorkspace/TestLogger/Debug/../main/src/TestLogger.cpp:27: undefined reference to `__imp___ZNK9log4cplus6Logger12isEnabledForEi'
    D:/eclipseWorkspace/TestLogger/Debug/../main/src/TestLogger.cpp:27: undefined reference to `__imp___ZN9log4cplus6Logger9forcedLogEiRKSsPKci'
    D:/eclipseWorkspace/TestLogger/Debug/../main/src/TestLogger.cpp:29: undefined reference to `log4cplus::Logger::~Logger()'
    D:/eclipseWorkspace/TestLogger/Debug/../main/src/TestLogger.cpp:29: undefined reference to `log4cplus::BasicConfigurator::~BasicConfigurator()'
    D:/eclipseWorkspace/TestLogger/Debug/../main/src/TestLogger.cpp:29: undefined reference to `log4cplus::Logger::~Logger()'
    D:/eclipseWorkspace/TestLogger/Debug/../main/src/TestLogger.cpp:29: undefined reference to `log4cplus::BasicConfigurator::~BasicConfigurator()'
    collect2: ld returned 1 exit status
    make: *** [TestLogger.exe] Error 1

  2. #2
    Membre éclairé
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Points : 810
    Points
    810
    Par défaut
    salut,

    en c/c++, il faut indiquer au linker le chemin des libs plus quelles libs utiliser, soit une commande qui ressemble à ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    g++ -L"D:\eclipseWorkspace\TestLogger\main\lib" -llog4cplus -o"TestLogger.exe"  ./main/src/TestLogger.o
    dans eclipse, ca se regle dans les propriétés du projet

    Débugger du code est deux fois plus dur que d'en écrire.
    Donc, si vous écrivez votre code aussi intelligemment que vous le pouvez, vous n'etes, par définition, pas assez intelligent pour le débugger.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2009
    Messages : 42
    Points : 31
    Points
    31
    Par défaut
    Merci Mamelouk pour ta réponse aussi rapide.

    J'ai donc procédé à l'ajout de la librairie en question dans la partie -l de la configuration de build et j'obtiens l'executable
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Building target: TestLogger.exe
    Invoking: MinGW C++ Linker
    g++ -L"D:\eclipseWorkspace\TestLogger\main\lib" -o"TestLogger.exe"  ./main/src/TestLogger.o   -lliblog4cplus
    Finished building target: TestLogger.exe
    Merci pour ton aide.
    Zerbynette

  4. #4
    Membre éclairé
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Points : 810
    Points
    810
    Par défaut
    De rien, c'était facile et ca fait plaisir

    Débugger du code est deux fois plus dur que d'en écrire.
    Donc, si vous écrivez votre code aussi intelligemment que vous le pouvez, vous n'etes, par définition, pas assez intelligent pour le débugger.

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2009
    Messages : 42
    Points : 31
    Points
    31
    Par défaut 2e souci...
    alors que j'avais reussi par lancer l'.exe maintenant en recompilant et linkant (tout ok), le run me dit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    make all 
    main/src/TestLogger.d:1: *** multiple target patterns.  Stop.
    Et dans le .d généré est le suivant:
    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
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    main/src/TestLogger.d main/src/TestLogger.o: ../main/src/TestLogger.cpp \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/logger.h \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/config.hxx \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/config/win32.h \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/helpers/thread-config.h \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/loglevel.h \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/streams.h \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/tstring.h \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/loggingmacros.h \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/helpers/pointer.h \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/spi/appenderattachable.h \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/appender.h \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/layout.h \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/helpers/logloguser.h \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/helpers/property.h \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/helpers/timehelper.h \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/spi/loggingevent.h \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/ndc.h \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/helpers/threads.h \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/helpers/sleep.h \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/spi/filter.h \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/spi/loggerfactory.h \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/spi/loggerimpl.h \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/helpers/appenderattachableimpl.h \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/consoleappender.h \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/fileappender.h \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/fstreams.h \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/configurator.h \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/hierarchy.h \
      D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/logger.h
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/logger.h:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/config.hxx:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/config/win32.h:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/helpers/thread-config.h:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/loglevel.h:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/streams.h:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/tstring.h:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/loggingmacros.h:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/helpers/pointer.h:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/spi/appenderattachable.h:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/appender.h:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/layout.h:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/helpers/logloguser.h:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/helpers/property.h:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/helpers/timehelper.h:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/spi/loggingevent.h:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/ndc.h:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/helpers/threads.h:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/helpers/sleep.h:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/spi/filter.h:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/spi/loggerfactory.h:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/spi/loggerimpl.h:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/helpers/appenderattachableimpl.h:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/consoleappender.h:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/fileappender.h:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/fstreams.h:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/configurator.h:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/hierarchy.h:
     
    D:/eclipseWorkspace/TestLogger/ThirdParties/log4cplus/include/log4cplus/logger.h:
    alors il y a 2 fois les .h mais le formattage est legerement different (soit un \, soit un : )

    Aurais-tu une idée?

    Merci
    Zerbynette (qui a beaucoup de respect pour les buildmasters)

  6. #6
    Membre éclairé
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Points : 810
    Points
    810
    Par défaut
    hum, je ne suis pas un 'buildmaster', je sais meme pas à quoi sert l'extension .d

    Ceci dis, il faut essayer un clean/rebuild, puis avoir le réflexe de demander à google

    Débugger du code est deux fois plus dur que d'en écrire.
    Donc, si vous écrivez votre code aussi intelligemment que vous le pouvez, vous n'etes, par définition, pas assez intelligent pour le débugger.

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2009
    Messages : 42
    Points : 31
    Points
    31
    Par défaut
    j'ai effectivement fait une succession de clean/build voire meme supprimer tout le repertoire utilisé pour builder. Mais rien y fait.

    Sur Google.com, les posts (et il n'y en a pas beaucoup) ne sont vraiment pas claires, et, faut si je ne sais plus lire, aucune reponse n'est apportée pour solutionner mon probleme.

    Enfin, je te remercie pour ton aide et désolée d'avoir abusé de tes compétences.

    Zerbynette

  8. #8
    Membre éclairé
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Points : 810
    Points
    810
    Par défaut
    y'a pas d'abus..

    pour ce genre de problème et tant d'autres ( http://www.developpez.net/forums/d55...opre-makefile/ ), tu devrait écrire toi meme le makefile, c'est tellement simple pour un executable, et au moins tu maitrise ce que tu fait

    a+

    Débugger du code est deux fois plus dur que d'en écrire.
    Donc, si vous écrivez votre code aussi intelligemment que vous le pouvez, vous n'etes, par définition, pas assez intelligent pour le débugger.

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2009
    Messages : 42
    Points : 31
    Points
    31
    Par défaut
    qq nouvelles.

    Je me suis lancée dans l'écriture du makefile.

    Mais je me suis aperçue d'une chose: cygwin et mingw ne font pas bon ménage.
    Enfin, je continue mon investigation pour integrer log4cplus dans mon projet en espérant y arriver et mettre a jour ce post

  10. #10
    Membre éclairé
    Avatar de mamelouk
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    867
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2005
    Messages : 867
    Points : 810
    Points
    810
    Par défaut
    on s'apercoit de beaucoup de choses quand on descend d'un niveau d'abstraction

    ce sera plus facile pour toi d'obtenir de l'aide sur les problèmes de compilation et les makefile que sur eclipse

    bonne chance

    Débugger du code est deux fois plus dur que d'en écrire.
    Donc, si vous écrivez votre code aussi intelligemment que vous le pouvez, vous n'etes, par définition, pas assez intelligent pour le débugger.

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2009
    Messages : 42
    Points : 31
    Points
    31
    Par défaut Yes Yes Yes!!!!
    Me revoilà!

    J'ai dû avoir une revelation dans la nuit et CA MARCHE!!!! Ma plus grosse erreur etait d'avoir mixé la compilation de log4cplus par cygwin et celle de mon projet par mingw.

    Donc au final j'ai tout compilé avec le compilateur de cygwin (configuré sous eclipse), avec MON makefile

    Ahhh, c'que ca fait plaisir quand ca marche!

    bonne journée.
    Zerbynette

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

Discussions similaires

  1. Comment Integré une lib avec VS2005?
    Par ekinox17 dans le forum MFC
    Réponses: 23
    Dernier message: 13/02/2006, 08h51
  2. [C#] Comment integrer dll C++ mixte managé/natif ?
    Par groskek dans le forum C++/CLI
    Réponses: 5
    Dernier message: 25/01/2006, 21h46
  3. comment integrer plusieurs css ?¿?¿
    Par artotal dans le forum Mise en page CSS
    Réponses: 10
    Dernier message: 28/12/2005, 12h40
  4. Comment integrer un path
    Par dinver dans le forum Linux
    Réponses: 3
    Dernier message: 07/04/2004, 17h16
  5. Réponses: 1
    Dernier message: 06/04/2004, 11h01

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