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 :

include vs paramètre de compilation


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2008
    Messages : 27
    Par défaut include vs paramètre de compilation
    J'ai installé une librairie de cryptographie: crypto++
    Dans mon code, je dois inclure la librairie:

    #include "crypto++/hex.h"

    Par contre, je ne comprend pas pourquoi lors de la compilation, je dois en plus ajouter l'option

    -lcryptopp

    Quelle est la différence entre un include et un paramètre de compilation?

    JF

  2. #2
    Expert confirmé
    Homme Profil pro
    Analyste/ Programmeur
    Inscrit en
    Juillet 2013
    Messages
    4 766
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Analyste/ Programmeur

    Informations forums :
    Inscription : Juillet 2013
    Messages : 4 766
    Par défaut
    Lis bien la documentation de gcc

    L'un c'est pour inclure les entêtes, c'est à dire les déclarations de tes classes, méthodes, fonctions, ...: c'est la bascule -I[un chemin]
    L'autre c'est pour inclure les librairies (.a, .lib, ...) c'est à dire toutes les définitions de tes classes, méthodes, fonctions, ...: c'est la bascule -L[un chemin] et/ ou -l[un nom de librairie sans l'extension]

  3. #3
    Membre chevronné
    Profil pro
    Consultant en technologies
    Inscrit en
    Octobre 2013
    Messages
    158
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant en technologies

    Informations forums :
    Inscription : Octobre 2013
    Messages : 158
    Par défaut
    #include machin.h : Ca inclus machin.h dans le fichier avant la compilaition, par convention machin.h ne contiens que le prototype des fonctions mais pas l'implémentation les fonctions sont donc déclarée et lorsque tu compile ton main.cc le compilateur connait les fonctions.
    Vient ensuite l'édition de lien (tout les fichiers compilés un par un sont liés ensembles pour faire un executable) il faut donc indiquer au compilateur où se trouve l'implémentation des fonctions déclarées dans machin.h c'est à ca que sert l'option -lmachin tu dis au compilateur de chercher une librairie (par exemple un .so sous Linux qui s'appelle machin dans le répertoire où sont stockés les libs)

    En gros il y a trois étapes dans la compilation
    1) Préprocesseur (les fameux #include, #define etc...)
    2) Compilation
    3) Édition de liens

    Essayes de te renseigner un peu dessus (au moins des généralités) ca va te faire comprendre plein de trucs...

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2008
    Messages : 27
    Par défaut
    OK je vois le principe.
    Merci

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 06/09/2012, 16h31
  2. Problème d'include lors de la compilation..
    Par corgato dans le forum Qt
    Réponses: 9
    Dernier message: 03/07/2009, 14h14
  3. modifer les include/lib directory avant compilation
    Par ZashOne dans le forum Visual Studio
    Réponses: 0
    Dernier message: 24/06/2009, 23h06
  4. Réponses: 3
    Dernier message: 15/04/2008, 21h19
  5. [Free Pascal] Paramètres de Compilation FPC
    Par Ultima dans le forum Free Pascal
    Réponses: 6
    Dernier message: 11/02/2007, 01h30

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