Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Linux > Système

Système Vos questions autour de l'administration système

Réponse
 
Outils de la discussion
Vieux 12/09/2008, 12h57   #1 (permalink)
Membre régulier
 
Date d'inscription: juillet 2006
Messages: 139
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
Fluxy est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 14/09/2008, 14h04   #2 (permalink)
Membre régulier
 
Avatar de SYL666
 
Date d'inscription: novembre 2003
Messages: 132
Envoyer un message via MSN à SYL666
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)
SYL666 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 14/09/2008, 16h17   #3 (permalink)
Membre régulier
 
Date d'inscription: août 2008
Messages: 130
Envoyer un message via Skype™ à thierry.chich
Par défaut

J'aurais tendance à dire que c'est en dur dans le code. Le defaut de --prefix est /usr.
thierry.chich est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 14/09/2008, 16h34   #4 (permalink)
Membre régulier
 
Avatar de SYL666
 
Date d'inscription: novembre 2003
Messages: 132
Envoyer un message via MSN à SYL666
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)
SYL666 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 15/09/2008, 17h04   #5 (permalink)
Membre régulier
 
Date d'inscription: août 2008
Messages: 130
Envoyer un message via Skype™ à thierry.chich
Par défaut

Je parlais au niveau de gcc :
Code :
#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.
thierry.chich est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 17/09/2008, 13h50   #6 (permalink)
Membre régulier
 
Date d'inscription: juillet 2006
Messages: 139
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 :
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
Fluxy est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 17/09/2008, 14h14   #7 (permalink)
Membre régulier
 
Avatar de SYL666
 
Date d'inscription: novembre 2003
Messages: 132
Envoyer un message via MSN à SYL666
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)
SYL666 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 17/09/2008, 14h19   #8 (permalink)
Membre éclairé
 
Date d'inscription: avril 2008
Localisation: Chambéry - Nancy
Âge: 21
Messages: 342
Par défaut

Citation:
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/
__________________
Citation:
Dire des idioties, de nos jours où tout le monde réfléchit profondément, c'est le seul moyen de prouver qu'on a une pensée libre et indépendante.
Leeloo_Multiboot est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 17/09/2008, 14h36   #9 (permalink)
Membre éclairé
 
Avatar de Tchetch
 
Date d'inscription: mars 2002
Localisation: Martigny, VS, CH
Âge: 23
Messages: 329
Par défaut

C'est défini par la FHS : http://www.pathname.com/fhs/pub/fhs-...RSTANDARDINCLU
__________________
Mon wiki (on y parle Debian principalement) : http://www.tchetch.net/
Tchetch est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 17/09/2008, 14h43   #10 (permalink)
Membre régulier
 
Avatar de SYL666
 
Date d'inscription: novembre 2003
Messages: 132
Envoyer un message via MSN à SYL666
Par défaut

Citation:
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)
SYL666 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 18/09/2008, 08h29   #11 (permalink)
Membre régulier
 
Date d'inscription: juillet 2006
Messages: 139
Par défaut

Très intéressant.

Merci.

++
Fluxy__
Fluxy est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 24/09/2008, 19h51   #12 (permalink)
Nouveau membre du Club
 
Date d'inscription: avril 2007
Âge: 24
Messages: 78
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
ZeRevo est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Linux > Système



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide