GNU/Linux >> Znalost Linux >  >> Linux

Jak najdu hlavičkové soubory programovacího jazyka C v Linuxu?

locate stdio.h

nebo

mlocate stdio.h

ale locate spoléhá na databázi, pokud jste ji nikdy neaktualizovali

sudo updatedb

můžete se také zeptat gcc abyste věděli, jaké jsou výchozí adresáře, které jsou skenovány pomocí gcc sám:

gcc -print-search-dirs

gcc -H ... vytiskne úplnou cestu každého začleněného souboru jako vedlejší efekt běžné kompilace. Použijte -fsyntax-only kromě toho, aby nevytvářel žádný výstup (stále vám řekne, zda má váš program chyby). Příklad (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

Tečky na začátku každého řádku počítají, jak hluboko je vnořeno #include je.


Pokud používáte gcc, můžete zkontrolovat konkrétní soubor pomocí něčeho jako:

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

-H požádá preprocesor, aby rekurzivně vytiskl všechny zahrnuté soubory. head -n1 bere z toho pouze první řádek výstupu, aby se ignorovaly všechny soubory obsažené v pojmenované hlavičce (ačkoli konkrétně stdbool.h pravděpodobně ne).

Na mém počítači například výše uvedené výstupy:

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

Během předběžného zpracování budou všechny direktivy preprocesoru nahrazeny skutečnými. Stejně jako rozšíření makra, odstranění komentáře ke kódu, včetně zdrojového kódu souboru záhlaví atd...

můžeme to zkontrolovat pomocí cpp - Příkaz C PreProcessor.

Například v příkazovém řádku:

cpp Filename.c

zobrazí předzpracovaný výstup.


Linux
  1. Kde je hlavičkový soubor <conio.h> v systému Linux? Proč nemohu najít <conio.h>?

  2. Jak mohu vidět velikost souborů a adresářů v linuxu?

  3. Jak mohu upravit všechny soubory vrácené funkcí find in vi v systému Linux?

  1. Jak najít duplicitní soubory v Linuxu

  2. Jak používat Linuxový příkaz find k hledání souborů

  3. Jak najdu model hardwaru v Linuxu?

  1. Jak najít soubory v Linuxu

  2. Jak najít všechny řídké soubory v Linuxu

  3. Jak zjistím počet uživatelů online v Linuxu?