GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie finde ich die Header-Dateien der Programmiersprache C unter Linux?

locate stdio.h

oder

mlocate stdio.h

aber locate stützt sich auf eine Datenbank, wenn Sie diese noch nie aktualisiert haben

sudo updatedb

Sie können auch gcc erfragen um zu erfahren, welches die Standardverzeichnisse sind, die von gcc gescannt werden selbst:

gcc -print-search-dirs

gcc -H ... wird den vollständigen Pfad jeder Include-Datei als Nebeneffekt der regulären Kompilierung ausgeben. Verwenden Sie -fsyntax-only zusätzlich dazu, dass es keine Ausgabe erzeugt (es wird Ihnen immer noch sagen, ob Ihr Programm Fehler hat). Beispiel (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

Die Punkte am Anfang jeder Zeile zählen, wie tief die #include verschachtelt sind ist.


Wenn Sie gcc verwenden, können Sie eine bestimmte Datei mit etwas wie:

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

-H fordert den Präprozessor auf, alle enthaltenen Dateien rekursiv zu drucken. head -n1 nimmt nur die erste Zeile der Ausgabe davon, um alle Dateien zu ignorieren, die im benannten Header enthalten sind (obwohl dies insbesondere bei stdbool.h wahrscheinlich nicht der Fall ist).

Auf meinem Computer werden beispielsweise die obigen Ausgaben ausgegeben:

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

Während der Vorverarbeitung werden alle Präprozessoranweisungen durch die tatsächlichen ersetzt. Wie Makroerweiterung, Entfernung von Codekommentaren, einschließlich des Quellcodes der Header-Datei usw....

wir können es mit cpp überprüfen - C PreProcessor-Befehl.

Zum Beispiel in der Kommandozeile:

cpp Filename.c

zeigt die vorverarbeitete Ausgabe an.


Linux
  1. So finden Sie doppelte Dateien in Linux

  2. So verwenden Sie den Linux-Befehl find zum Suchen von Dateien

  3. So finden Sie alle Sparse-Dateien in Linux

  4. Wie kann ich die Anzahl der Benutzer online in Linux finden?

  5. Wie finde ich das Hardwaremodell unter Linux?

So installieren Sie die Nim-Programmiersprache unter Linux

So suchen Sie nach Dateien über die Linux-Befehlszeile

So finden Sie Dateien mit dem fd-Befehl in Linux

So installieren Sie die Go-Programmiersprache in Alpine Linux

So installieren Sie die Programmiersprache Rust unter Linux

So installieren Sie GoLang (Go-Programmiersprache) unter Linux