GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso trovare i file di intestazione del linguaggio di programmazione C in Linux?

locate stdio.h

o

mlocate stdio.h

ma locate si basa su un database, se non lo hai mai aggiornato

sudo updatedb

puoi anche chiedere gcc per sapere quali sono le directory predefinite scansionate da gcc stesso:

gcc -print-search-dirs

gcc -H ... stamperà il percorso completo di ogni file di inclusione come effetto collaterale della normale compilazione. Usa -fsyntax-only oltre a non creare alcun output (ti dirà comunque se il tuo programma ha errori). Esempio (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

I punti all'inizio di ogni riga contano quanto profondamente è nidificato il #include è.


Se usi gcc, puoi controllare un file specifico con qualcosa come:

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

-H chiede al preprocessore di stampare in modo ricorsivo tutti i file inclusi. head -n1 prende solo la prima riga di output da questo, per ignorare tutti i file inclusi dall'intestazione denominata (anche se stdbool.h in particolare probabilmente non lo fa).

Sul mio computer, ad esempio, gli output precedenti:

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

Durante la preelaborazione tutte le direttive del preprocessore verranno sostituite con le effettive. Come l'espansione delle macro, la rimozione dei commenti del codice, incluso il codice sorgente del file di intestazione ecc...

possiamo controllarlo usando cpp - Comando C PreProcessor.

Ad esempio nella riga di comando:

cpp Filename.c

visualizza l'output preelaborato.


Linux
  1. Come trovare file duplicati in Linux

  2. Come posso vedere la dimensione dei file e delle directory in Linux?

  3. Come posso trovare il numero di utenti online in Linux?

  4. Come posso modificare tutti i file restituiti da find in vi in ​​Linux?

  5. Come posso trovare il modello hardware in Linux?

Come installare il linguaggio di programmazione Nim su Linux

Come cercare file dalla riga di comando di Linux

Come trovare file con il comando fd in Linux

Come installare il linguaggio di programmazione Go in Alpine Linux

Come installare il linguaggio di programmazione Rust su Linux

Come installare GoLang (Go Programming Language) su Linux