CMake find_path include-Verzeichnis-Präfix

Schreibe ich eine minimale Finden*.cmake für OpenNI. Finden Sie die header-Dateien, die ich schrieb

find_path(OPENNI_INCLUDE_PATH XnOS.h)

welche arbeitet wie erwartet (OPENNI_INCLUDE_PATH hat den Wert /usr/include/ni).
Jedoch, in meinen Unterlagen habe ich den Header mit

#include <ni/XnOS.h>

Wie kann ich loswerden der ni-Präfix, so kann ich schreiben

#include <XnOS.h>

Das problem mit den ersten gehören wird, die ein XnCppWrapper.h wird aufgenommen und diese Datei beinhaltet wieder einige Xn*.h Header, aber ohne das Präfix ni. Dies führt zu einem compiler-Fehler.

  • Sind alle Dateien in der ersten form? Ich meine, Sie könnte passen Sie die OPENNI_INCLUDE_PATH variable werden die Eltern von dem, was zurückgegeben wird, die von find_path() und verwenden, statt.
  • Ich denke, ich verstehe Ihren Vorschlag. Meinst du, ich sollte strap ni aus /usr/include/ni? Dies löst nicht das problem gehören.
  • Ich meine, wenn ni ist in /usr/include dann OPENNI_INCLUDE_PATH sein sollte /usr/include anstelle von /usr/include/ni. Auf diese Weise brauchen Sie nicht zu erzeugen-Skript-Prozess, die änderungen, die Ihr c++ source-Dateien und Headern suchen beinhaltet, entfernen Sie den Pfad. Obwohl ich weiß, wenn das der Fall war /usr/include wird bereits in Ihr schließt also die OPENNI_INCLUDE_PATH wäre überflüssig.
  • Zwar konnte man immer einstellen(OPENNI_INCLUDE_PATH ${OPENNI_INCLUDE_PATH};${OPENNI_INCLUDE_PATH}/..)
  • Du hast Recht, ni ist in /usr/include. Leider hält es nicht ändern, was, wenn ich eine änderung OPENNI_INCLUDE_PATH /usr/include. In jedem Fall habe ich zu schreiben #include <ni/XnOs.h> in meinen Dateien, die Ergebnisse in der oben beschriebenen Zusammenstellung Fehler.
  • Wenn /usr/include ist in Ihren enthält "#include <ni/XnOs.h" sollte nicht dazu führen, einen compile-Fehler. Auch wenn ich nicht viel Erfahrung mit gcc.
  • Dies führt zu einem Kompilierungsfehler, da in der Datei XnOs.h ist wieder eine enthalten, die nicht den ni/ Präfix. Und der compiler beschwert sich, dass es kann die Datei nicht finden.
  • Dann versuchen Sie, beide Wege, wie ich schon sagte, 3 Beiträge vor.
  • Das war keine Lösung. Ich habe den gleichen Kompilierungsfehler.
  • Wenn sowohl /usr/include/ni und /usr/include sind in Ihr beinhaltet, sollten Sie nicht erhalten eine Fehlermeldung. Etwas anderes muss passiert sein.

InformationsquelleAutor Masala | 2014-03-21
Schreibe einen Kommentar