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 :

cmake, cmakelist & target_link_libraries


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2003
    Messages : 120
    Billets dans le blog
    1
    Par défaut cmake, cmakelist & target_link_libraries
    Bonsoir !

    J'utilise cmake et son cmakelist pour compiler un projet lié à deux lib comme ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    target_link_libraries(cpp-sandbox azdev pthread)
    dans un cmakelist qu'est-ce qui défini la façon dont le lien se fait, est-ce que je lie en incluant dans le binaire les librairie ou est-ce que je lie en laissant les lib en "externe" ?

  2. #2
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2003
    Messages : 120
    Billets dans le blog
    1
    Par défaut
    serait-ce la directive

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    add_library(<name> [STATIC | SHARED | MODULE]
                [EXCLUDE_FROM_ALL]
                source1 [source2 ...])
    avec au choix SHARED ou STATIC ???

  3. #3
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2003
    Messages : 120
    Billets dans le blog
    1
    Par défaut
    Tout comme pour la commande add_executable(), le premier paramètre est le nom de la bibliothèque et le dernier la liste des fichiers sources. Le second paramètre, optionnel, indique le type de bibliothèque à générer :

    STATIC, pour générer une bibliothèque à lier statiquement ;
    SHARED, pour générer une bibliothèque à lier dynamiquement.
    source : https://florian-goujeon.developpez.c...ke/initiation/


    donc si je comprends bien, si j'ai une bibliothèque perso à lier que je mets à jour il vaut mieux utiliser SHARED et si je veux livrer un binaire 'all inclusive' je choisi STATIC ?

    ou plus simplement si je veux créer une lib disponible pour plusieurs projet je choisi SHARED ?!

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 152
    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 152
    Billets dans le blog
    4
    Par défaut
    static lie un .lib et intègre le code à l'exécutable
    shared est utilisé pour les dll
    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
    Membre confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    120
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2003
    Messages : 120
    Billets dans le blog
    1
    Par défaut
    merci Bousk

  6. #6
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    En fait, si tu ne spécifies pas "SHARED" ou "STATIC", c'est la variable "BUILD_SHARED_LIBS" qui tranche. Cette variable est OFF par défaut.

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

Discussions similaires

  1. CMAKE (cmakelists.txt) / cogitant/COGUI
    Par helpus dans le forum Build
    Réponses: 0
    Dernier message: 03/11/2010, 16h28
  2. [CMAKE] création d'un CMakeLists.txt
    Par AuraHxC dans le forum CUDA
    Réponses: 3
    Dernier message: 12/10/2010, 19h29

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