Wenn wir also Folgendes tun:
#include <stdio.h>
gegen
#include "myFile.h"
Der Compiler, in meinem Fall GCC, weiß, wo sich diese stdio.h (und sogar die Objektdatei) auf meiner Festplatte befinden. Es werden nur die Dateien ohne Interaktion von mir verwendet.
Ich denke, dass auf meinem Ubuntu Linux-Computer die Dateien gespeichert sind /usr/include/
. Woher weiß der Compiler, wo er nach diesen Dateien suchen muss? Ist dies konfigurierbar oder ist dies nur die erwartete Standardeinstellung? Wo würde ich nach dieser Konfiguration suchen?
Woher stammen die Dateien, da ich eine Frage zu diesen Include-Dateien stelle? Ich weiß, dass dies in der Linux-Community möglicherweise unscharf ist, aber wer verwaltet diese? Wer würde die gleichen Dateien für einen Windows-Compiler bereitstellen und verwalten?
Ich war immer unter dem Eindruck , dass sie kommen mit dem Compiler , aber das war eine Annahme ...
Karl hat Ihre Frage zum Suchpfad beantwortet, aber was die "Quelle der Dateien" betrifft, sollten Sie sich darüber im Klaren sein, dass Sie, wenn Sie das
libfoo
Paket installieren und damit etwas entwickeln möchten (dh seine Header verwenden), Sie müssen auch installierenlibfoo-dev
./usr/include
Wie Sie gesehen haben, befinden sich die Standard-Bibliotheks-Header-Dateien bereits in .Beachten Sie, dass einige Bibliotheken mit vielen Headern diese in einem Unterverzeichnis installieren, z
/usr/include/openssl
. Um einen davon einzuschließen, geben Sie einfach den Pfad ohne das/usr/include
Teil an, zum Beispiel:#include <openssl/aes.h>
quelle
Die
\#include
Dateien von gcc werden in gespeichert/usr/include
. Die Standard-Include-Dateien von g ++ werden in gespeichert/usr/include/c++
.quelle