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 :

Linker ensemble .h avec CMakeLists.txt


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Avril 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 35
    Par défaut Linker ensemble .h avec CMakeLists.txt
    Bonjour,

    je suis debutant et j'ai une question un peu stupide dont je n'ai pas trouver la solution.

    Voila mon program utilise la bibliotheque tclap/Cmdline donc en haut de mon source main.cxx il y a l'include :

    #include <tclap/CmdLine>

    donc maintenant pour que ca compile il faut dire au compilateur dans le CMakeLists.txt ou il doit trouver cette bibliotheque #include <tclap/CmdLine>.

    C'est un ensemble de fichier present dans le dossier tclap qui contient une dizaine de headers .h

    Maintenant qu'elle ligne dois-je mettre dans mon fichier CMakeLists.txt pour qu'il link ces fichier lorsqu'il compile mon main.cxx ?

    J'ai tout essaye INCLUDE_DIRECTORIES, TARGET_LINK_LIBRARIES, SET_TARGET_PROPERTIES mais rien ne marche Si on pouvait m'expliquer exactement ce que fait chaque commande et comment je dois les utiliser car la meme avec des tutoriaux il y a un truc qui doit m'echapper

    Merci d'avance

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 119
    Billets dans le blog
    148
    Par défaut
    Bonjour,

    C'est bien
    include_directories
    qu'il faut utiliser, mais il faut indiquer le dossier contenant le dossier tclap
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre averti
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Avril 2014
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 35
    Par défaut
    ca marche ! merci pour ton aide.

    Une question (suremment stupide) pour comprendre un peu ce qu'il se passe. Que fait exactement include_directories et comment cela est lie avec "target_link_librairies" ?

    La par exemple j'ai juste fait un "include directories" sans faire un target link librairies de ces librairies vers mon executable et pourtant cela marche ? Dans quel cas il faut utiliser target_link_librairies ?

    Merci !

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 147
    Billets dans le blog
    4
    Par défaut
    Salut,

    j'ai l'impression que tu confonds tout.
    Un header (.h) ça s'inclut avec #include.
    Un .a .lib ça se link.

    Ce sont 2 choses qui n'ont juste strictement rien à voir.
    INCLUDE_DIRECTORIES indique au compilateur où chercher les fichiers appelés avec #include, par défaut c'est uniquement dans le dossier d'exécution.
    LINK_DIRECTORIES indique où trouver les .lib, .a, par défaut toujours uniquement dans le dossier d'exécution.

    http://www.cmake.org/cmake/help/v2.8...link_libraries
    target_link_libraries semble servir à lier une lib à une autre ou ton exécutable. Mais je n'ai jamais utilisé cmake.
    En tous cas il n'a strictement rien à voir avec INCLUDE_DIRECTORIES. Ce sont 2 choses complètement orthogonales.
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  5. #5
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 119
    Billets dans le blog
    148
    Par défaut
    Pour vérifier ma réponse ce matin, j'ai utilisé ce tutoriel qui explique tout le processus de compilation. Une fois lu, il devrait y avoir moins de confusion.
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. Calendrier Dynamique avec input txt
    Par HWICE dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 31/01/2008, 21h04
  2. Réponses: 3
    Dernier message: 20/12/2007, 14h54
  3. Importer des donnees avec fichier txt
    Par flOZ dans le forum Requêtes
    Réponses: 8
    Dernier message: 21/04/2006, 17h26
  4. Réponses: 5
    Dernier message: 06/04/2006, 16h37
  5. Linker un .o avec des archives pour faire un exe
    Par vdumont dans le forum Linux
    Réponses: 4
    Dernier message: 28/03/2006, 22h33

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