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

Administration système Discussion :

Comment linux sait qu'il faut aller chercher les headers dans /usr/include ?


Sujet :

Administration système

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 161
    Points : 78
    Points
    78
    Par défaut Comment linux sait qu'il faut aller chercher les headers dans /usr/include ?
    Bonjour,

    P'tite question :

    Comment les distributions de linux savent-elles qu'il faut aller chercher les headers dans /usr/include ?

    Dans quels fichiers est-ce définis ?

    MErci

    ++

    Fluxy

  2. #2
    Membre averti Avatar de SYL666
    Inscrit en
    Novembre 2003
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 308
    Points : 411
    Points
    411
    Par défaut
    Salut,

    Si j'ai bien compris la question :
    dans ton fichier .c, tu définis :
    #include "sys/time.h"

    Le compilateur à une liste (modifiable avec -I) de répertoire contenant des headers. il va chercher dans ceux-ci pour trouver time.h à l'intérieur du sous-rép sys/

    Il doit aussi y avoir une option pour changer la racine... /usr/include devient alors /chemin/vers/racine/usr/include

    non?

    Cédric
    The Big Bang theory : In the beginning there was nothing, and it exploded. (Terry Pratchett)

    IT Quote : "Unix is user-friendly. It's just very selective about who its friends are."

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Points : 712
    Points
    712
    Par défaut
    J'aurais tendance à dire que c'est en dur dans le code. Le defaut de --prefix est /usr.

  4. #4
    Membre averti Avatar de SYL666
    Inscrit en
    Novembre 2003
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 308
    Points : 411
    Points
    411
    Par défaut
    Je parlais au niveau gcc, l'option est "--sysroot=". Au niveau "./configure", c'est effectivement ça, plus d'autres options.

    En fait, le mieux, ça serait que Fluxy précise ce qu'il souhaite faire exactement.
    The Big Bang theory : In the beginning there was nothing, and it exploded. (Terry Pratchett)

    IT Quote : "Unix is user-friendly. It's just very selective about who its friends are."

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    505
    Détails du profil
    Informations personnelles :
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Août 2008
    Messages : 505
    Points : 712
    Points
    712
    Par défaut
    Je parlais au niveau de gcc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #strings /usr/bin/gcc-4.2 | grep usr
    /usr/lib/gcc/
    /usr/lib/
    /usr/bin/
    /usr/libexec/gcc/
    /usr/share/apport/gcc_ice_hook
    /usr/share/apport/gcc_ice_hook %s %s
    ../src/configure -v --enable-languages=c,c++,fortran,objc,obj-c++,treelang --prefix=/usr --enable-shared --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --enable-nls --with-gxx-include-dir=/usr/include/c++/4.2 --program-suffix=-4.2 --enable-clocale=gnu --enable-libstdcxx-debug --enable-objc-gc --enable-mpfr --enable-targets=all --enable-checking=release --build=i486-linux-gnu --host=i486-linux-gnu --target=i486-linux-gnu
    /usr/share/locale
    /usr
    <URL:file:///usr/share/doc/gcc-4.2/README.Bugs>
    /usr/tmp
    Maintenant, oui bien sur, il y a l'option -I qui permet de rajouter des répertoires d'inclusion. Je ne connaissais pas --sysroot, mais tu as raison, ca peut rouler avec ça.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 161
    Points : 78
    Points
    78
    Par défaut
    C'était simplement une question pour satisfaire ma curisosité.

    Je ne comprend pas comment quand je compile un programme de façon standard :
    ./configure
    make
    make install

    comment ma distrib fait pour savoir qu'il faut aller chercher dans /usr/include ?

    parceque même avec un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    strings $(which gcc) | grep usr
    ../src/configure -v --enable-languages=c,c++ --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared --enable-__cxa_atexit --with-system-zlib --enable-nls --without-included-gettext --enable-clocale=gnu --enable-debug i486-linux-gnu
    /usr/lib/gcc-lib/
    /usr/lib/gcc/
    /usr/lib/
    /usr/bin/
    /usr/share/locale
    /usr
    <URL:file:///usr/share/doc/gcc-3.3/README.Bugs>
    /usr/tmp
    Je ne vois pas de /usr/include/

    Merci de vos précision

  7. #7
    Membre averti Avatar de SYL666
    Inscrit en
    Novembre 2003
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 308
    Points : 411
    Points
    411
    Par défaut
    Linux est un Unix, je suppose que c'est une norme Unix. Il te faudrait aller dans les sources de gcc pour savoir, je suppose

    string ne montre pas tout non plus, je suppose (si la chaine de caractères est construite dynamiquement, par exemple)

    A ma connaissance, il n'est pas possible de changer les répertoires par défauts tels que /bin, /usr/{include,bin,etc.}, /etc, etc.
    The Big Bang theory : In the beginning there was nothing, and it exploded. (Terry Pratchett)

    IT Quote : "Unix is user-friendly. It's just very selective about who its friends are."

  8. #8
    Membre confirmé Avatar de Leeloo_Multiboot
    Profil pro
    Administrateur Unix/Linux
    Inscrit en
    Avril 2008
    Messages
    417
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur Unix/Linux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2008
    Messages : 417
    Points : 550
    Points
    550
    Par défaut
    Code :

    strings $(which gcc) | grep usr
    ../src/configure -v --enable-languages=c,c++ --prefix=/usr --mandir=/usr/share/man
    --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.3 --enable-shared --enable-__cxa_atexit
    --with-system-zlib --enable-nls --without-included-gettext
    --enable-clocale=gnu --enable-debug i486-linux-gnu
    /usr/lib/gcc-lib/
    /usr/lib/gcc/
    /usr/lib/
    /usr/bin/
    /usr/share/locale
    /usr
    <URL:file:///usr/share/doc/gcc-3.3/README.Bugs>
    /usr/tmp

    Je ne vois pas de /usr/include/
    Près des cîmes, loin des cons...

  9. #9
    Membre confirmé Avatar de Tchetch
    Inscrit en
    Mars 2002
    Messages
    401
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2002
    Messages : 401
    Points : 477
    Points
    477
    Mon wiki (on y parle Debian principalement) : http://www.tchetch.net/

  10. #10
    Membre averti Avatar de SYL666
    Inscrit en
    Novembre 2003
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 308
    Points : 411
    Points
    411
    Par défaut
    Edited by
    Rusty Russell
    [...]
    ==> on s'incline et on ne contredit pas!
    The Big Bang theory : In the beginning there was nothing, and it exploded. (Terry Pratchett)

    IT Quote : "Unix is user-friendly. It's just very selective about who its friends are."

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 161
    Points : 78
    Points
    78
    Par défaut
    Très intéressant.

    Merci.

    ++
    Fluxy__

  12. #12
    Membre averti Avatar de ZeRevo
    Inscrit en
    Avril 2007
    Messages
    302
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Avril 2007
    Messages : 302
    Points : 342
    Points
    342
    Par défaut
    Comme quoi linux ça reste une boite noire pour beaucoup de développeurs/utilisateurs.

    Il n'y a donc pas de magie en informatique

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/09/2010, 11h52
  2. [EasyPHP] Comment dire à EasyPHP d'aller chercher les BDD et dossier "w.w.w" sur un DDExterne?
    Par scoal dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 06/09/2009, 21h23
  3. Comment aller chercher les valeurs dans un dynaset
    Par gibea00 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 20/08/2007, 19h15
  4. Réponses: 9
    Dernier message: 11/07/2007, 23h46
  5. Comment aller chercher une info dans un fichier
    Par El-Diablo- dans le forum C++Builder
    Réponses: 15
    Dernier message: 06/05/2007, 16h39

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