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
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
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."
J'aurais tendance à dire que c'est en dur dans le code. Le defaut de --prefix est /usr.
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."
Je parlais au niveau de gcc :
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.
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
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
Je ne vois pas de /usr/include/
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
Merci de vos précision
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."
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...
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/
==> on s'incline et on ne contredit pas!Edited by
Rusty Russell
[...]
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."
Comme quoi linux ça reste une boite noire pour beaucoup de développeurs/utilisateurs.
Il n'y a donc pas de magie en informatique
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager