Includes mit gleichem Namen
-
Hi,
ich habe eine Verständnisfrage bezgl. includes mit gleichem Namen:
Als Beispiel: Ich verwende Libs von OpenCv und Matlab, beide besitzen eine Header-file namens "matrix.h", wenn ich nun #include "matrix.h" im Code verwende, woher weiß der Compiler welchen Header er verwenden soll? Bzw. was muss in solchen Fällen beachtet werden?
mfg,
soad
-
Der Compiler geht seinen Suchpfad durch, bis er die erste Datei mit diesem Namen findet. Da es in jedem Verzeichnis nur eine Datei mit dem Namen geben kann, ist das Ergebnis eindeutig. Willst du mehrere unterschiedliche Dateien einbinden, dann musst du im Zweifelsfall durch eine Pfadangabe präzisieren, welche du meinst.
-
setz die include pfade so, dass sie einen zusatzordner haben <mathlab/matrix.h> <irgendwas/matrix.h> die eigentlichen klassen sollten dann eh in namepsaces liegen und somit keine probleme machen.

-
Danke für die raschen Antworten
!SeppJ schrieb:
Der Compiler geht seinen Suchpfad durch, bis er die erste Datei mit diesem Namen findet...
Heißt das, dass die Reihenfolge der Include-Pfade relevant ist?
-
soad schrieb:
SeppJ schrieb:
Der Compiler geht seinen Suchpfad durch, bis er die erste Datei mit diesem Namen findet...
Heißt das, dass die Reihenfolge der Include-Pfade relevant ist?
Ja. Aber das muss nicht unbedingt heißen, dass die Reihenfolge intuitiv ist. Guck am besten in die Dokumentation deines Compilers.