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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 161
    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 expérimenté Avatar de SYL666
    Inscrit en
    Novembre 2003
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 308
    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

  3. #3
    Membre émérite
    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
    Par défaut
    J'aurais tendance à dire que c'est en dur dans le code. Le defaut de --prefix est /usr.

  4. #4
    Membre expérimenté Avatar de SYL666
    Inscrit en
    Novembre 2003
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 308
    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.

  5. #5
    Membre émérite
    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
    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 confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    161
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 161
    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 expérimenté Avatar de SYL666
    Inscrit en
    Novembre 2003
    Messages
    308
    Détails du profil
    Informations forums :
    Inscription : Novembre 2003
    Messages : 308
    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.

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

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

    Informations forums :
    Inscription : Avril 2008
    Messages : 417
    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/

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 14/09/2010, 12h52
  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, 22h23
  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, 20h15
  4. Réponses: 9
    Dernier message: 12/07/2007, 00h46
  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, 17h39

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