GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je trouver les fichiers d'en-tête du langage de programmation C sous Linux ?

locate stdio.h

ou

mlocate stdio.h

mais locate s'appuie sur une base de données, si vous ne l'avez jamais mise à jour

sudo updatedb

vous pouvez également vous renseigner gcc pour savoir quels sont les répertoires par défaut qui sont scannés par gcc lui-même :

gcc -print-search-dirs

gcc -H ... imprimera le chemin complet de chaque fichier inclus comme effet secondaire de la compilation régulière. Utilisez -fsyntax-only en plus de ne pas créer de sortie (il vous dira quand même si votre programme a des erreurs). Exemple (Linux, gcc-4.7) :

$ cat > test.c
#include <stdbool.h>
#include <stdio.h>
^D
$ gcc -H -fsyntax-only test.c
. /usr/lib/gcc/x86_64-linux-gnu/4.7/include/stdbool.h
. /usr/include/stdio.h
.. /usr/include/features.h
... /usr/include/x86_64-linux-gnu/bits/predefs.h
... /usr/include/x86_64-linux-gnu/sys/cdefs.h
.... /usr/include/x86_64-linux-gnu/bits/wordsize.h
... /usr/include/x86_64-linux-gnu/gnu/stubs.h
.... /usr/include/x86_64-linux-gnu/bits/wordsize.h
.... /usr/include/x86_64-linux-gnu/gnu/stubs-64.h
.. /usr/lib/gcc/x86_64-linux-gnu/4.7/include/stddef.h
.. /usr/include/x86_64-linux-gnu/bits/types.h
... /usr/include/x86_64-linux-gnu/bits/wordsize.h
... /usr/include/x86_64-linux-gnu/bits/typesizes.h
.. /usr/include/libio.h
... /usr/include/_G_config.h
.... /usr/lib/gcc/x86_64-linux-gnu/4.7/include/stddef.h
.... /usr/include/wchar.h
... /usr/lib/gcc/x86_64-linux-gnu/4.7/include/stdarg.h
.. /usr/include/x86_64-linux-gnu/bits/stdio_lim.h
.. /usr/include/x86_64-linux-gnu/bits/sys_errlist.h

Les points au début de chaque ligne comptent la profondeur d'imbrication du #include est.


Si vous utilisez gcc, vous pouvez vérifier un fichier spécifique avec quelque chose comme :

echo '#include <stdbool.h>' | cpp -H -o /dev/null 2>&1 | head -n1

-H demande au préprocesseur d'imprimer tous les fichiers inclus de manière récursive. head -n1 prend juste la première ligne de sortie de cela, pour ignorer tous les fichiers inclus par l'en-tête nommé (bien que stdbool.h en particulier ne le fasse probablement pas).

Sur mon ordinateur, par exemple, les sorties ci-dessus :

. /usr/lib/gcc/x86_64-linux-gnu/4.6/include/stdbool.h

Pendant le prétraitement, toutes les directives du préprocesseur seront remplacées par les valeurs réelles. Comme l'expansion des macros, la suppression des commentaires de code, y compris le code source du fichier d'en-tête, etc...

nous pouvons le vérifier en utilisant le cpp - Commande du préprocesseur C.

Par exemple dans la ligne de commande :

cpp Filename.c

affiche la sortie prétraitée.


Linux
  1. Comment trouver des fichiers en double sous Linux

  2. Comment utiliser la commande Linux find pour rechercher des fichiers

  3. Comment trouver tous les fichiers épars sous Linux

  4. Où se trouve le fichier d'en-tête <conio.h> sous Linux ? Pourquoi ne puis-je pas trouver <conio.h> ?

  5. Comment puis-je voir la taille des fichiers et des répertoires sous Linux ?

Comment installer le langage de programmation Nim sur Linux

Comment rechercher des fichiers à partir de la ligne de commande Linux

Comment rechercher des fichiers avec la commande fd sous Linux

Comment installer le langage de programmation Go dans Alpine Linux

Comment installer le langage de programmation Rust sur Linux

Comment installer GoLang (langage de programmation Go) sous Linux