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

Autres éditeurs Discussion :

différence entre les options -l et -L de g++.exe


Sujet :

Autres éditeurs

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de yashiro
    Inscrit en
    Mars 2004
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 214
    Par défaut différence entre les options -l et -L de g++.exe
    Quelle est la différence entre les options -L et -l de g++.exe?

  2. #2
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 371
    Par défaut Re: différence entre les options -l et -L de g++.exe
    Citation Envoyé par yashiro
    Quelle est la différence entre les options -L et -l de g++.exe?
    -L rajoute un répertoire dans la liste des répertoires à visiter pour trouver les bibliothèques à lier.
    -l rajoute une bibliothèque particulière.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    -L[chemin du rep]
    -l[nom court de la biblio : toto pour libtoto]

  3. #3
    Membre confirmé Avatar de yashiro
    Inscrit en
    Mars 2004
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 214
    Par défaut OK pour -l et -L mais sous dev-cpp alors???
    En fait je compile sous dev-cpp en ligne de commande sans utiliser l'option -l mais j'ajoute tout de même des lib que j'ai crées, est-ce à dire que cette option ne marche pas sous dev?
    En plus lorsque j'ajoute des lib, je suis obligé de le faire en fin de commande du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    g++.exe monfich.o ... -o monfich.exe -L"dirlib1 -Ldirlib2..." lib1.a lib2.a...
    est-ce que je suis obligé de mettre ces lib à la fin de la com?

  4. #4
    Membre confirmé Avatar de yashiro
    Inscrit en
    Mars 2004
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 214
    Par défaut puis-je me passer de l'option -l de g++.exe????
    Lorsque j'ai crée une librairie en c/c++, pour l'utiliser je suis obligé non seulement de donner la direction des libs mais aussi de l'ajouter explicitement avec l'option -l
    Y'a-t-il un moyen de l'intégrer dans la liste des librairie standard, pour que je n'ai plus besoin de l'ajouter explicitement?

  5. #5
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut Re: OK pour -l et -L mais sous dev-cpp alors???
    Citation Envoyé par yashiro
    En fait je compile sous dev-cpp en ligne de commande sans utiliser l'option -l mais j'ajoute tout de même des lib que j'ai crées, est-ce à dire que cette option ne marche pas sous dev?
    En plus lorsque j'ajoute des lib, je suis obligé de le faire en fin de commande du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    g++.exe monfich.o ... -o monfich.exe -L"dirlib1 -Ldirlib2..." lib1.a lib2.a...
    est-ce que je suis obligé de mettre ces lib à la fin de la com?
    Pas compris. dans tous les compilateurs, il faut rajouter les librairies supplémentaires, que ce soit GCC ou VS, par exemple. -L indique le dossier où chercher les librairies, on ne sait pas encore lesquelles. Avec -l, on lui précise ce qu'il doit chercher, et pour celà, il a le chemin standard plus les chemins indiqués par -l.

  6. #6
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut Re: OK pour -l et -L mais sous dev-cpp alors???
    Citation Envoyé par yashiro
    En fait je compile sous dev-cpp en ligne de commande sans utiliser l'option -l mais j'ajoute tout de même des lib que j'ai crées, est-ce à dire que cette option ne marche pas sous dev?
    En plus lorsque j'ajoute des lib, je suis obligé de le faire en fin de commande du genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    g++.exe monfich.o ... -o monfich.exe -L"dirlib1 -Ldirlib2..." lib1.a lib2.a...
    est-ce que je suis obligé de mettre ces lib à la fin de la com?
    Que font les editeurs de liens? Si on ne considere pas les bibliotheques
    partagees (ou dynamiques), ils prennent une serie de fichiers objets et en
    font un executable. Comment trouvent-ils les fichiers objets? A deux
    endroits:
    - sur la ligne de commande
    - dans des bibliotheques

    Naturellement, on ne desire pas que le contenu complet des
    bibliotheques se trouve dans l'executable, donc le comportement
    classique des editeurs de liens est le suivant: ils parcourent la
    ligne de commande dans l'ordre en maintenant une liste des symboles
    dont ils ont besoin.

    Quand ils rencontrent un fichier objet, ils l'ajoutent a l'executable
    et mettent a jour la liste des symboles non definis, enlevant ceux
    defini dans le fichier objet, ajoutant ceux dont le fichier objet a
    besoin qui ne sont pas definis dans un fichier objet deja dans
    l'executable.

    Quand ils rencontrent une bibliotheque, ils cherchent dans celles-ci
    les fichiers objets qui definissent des symboles dont ils ont besoin
    (et ignorent les autres fichiers objets) et les ajoutent a
    l'executable.

    Donc quand on utilise des bibliotheques, il faut les mettre apres les
    fichiers objets d'une part, et il faut les mettre dans un ordre tel
    que les bibliotheques soient placees avant celles dont elles dependent
    d'autre part. Quand on a une dependance circulaire, il faut parfois
    indiquer plusieurs fois une meme bibliotheque.

    Comment specifier une bibliotheque, il y a deux methodes:
    - en donnant le nom du fichier
    - par un raccourci

    Les switchs de gcc servent pour les raccourcis: les -L indiquent une
    serie de repertoires ou il faut chercher les bibliotheques, les -l
    indique les bibliotheques. Donc si on a
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -Ldir1 -ltoto -ltiti -Ldir2 -ltutu
    ca veut dire qu'on va prendre la premiere lib de
    dir1/libtoto.so, dir1/libtoto.a (et avoir une erreur si aucune existe)
    et la premier lib de dir1/libtutu.so, dir1/libtutu.a, dir2/libtutu.so,
    dir2/libtutu.a.

Discussions similaires

  1. Réponses: 3
    Dernier message: 31/08/2010, 23h23
  2. Réponses: 67
    Dernier message: 16/12/2007, 13h41
  3. 2 tables; requête : retourner différences entre les 2
    Par azerty dans le forum Langage SQL
    Réponses: 15
    Dernier message: 09/09/2003, 18h35
  4. fopen -> différences entres les types d'ouvertur
    Par Patrick PETIT dans le forum C
    Réponses: 10
    Dernier message: 01/06/2003, 18h19
  5. Réponses: 3
    Dernier message: 07/05/2002, 16h06

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