2016-07-14 6 views
0

Ich habe derzeit Probleme mit der Erstellung mit make. Bei Verwendung des Befehls wird nur zu 50% aufgebaut, bevor ein Fehler wie unten angezeigt wird.C++ enthält nicht gefunden, aber in CMakeLists.txt hinzugefügt

[ 50%] Building CXX object CMakeFiles/laminar.dir/laminar.o/home/uqslines/Documents/Laminar/laminar.cpp:25:34: fatal error: mechsys/adlbm/Domain.h: No such file or directory compilation terminated. 

Die Verzeichnis- und Datei ist es, in meinem CPP seine dort über gerichtete Datei:

#include <mechsys/adlbm/Domain.h> 

ich das Format zu ändern versucht haben, zu sehen, ob das Problem dadurch gelöst, und ich habe versucht, die Erstellung zahlreicher Dateien, da ich mehrere Beispiele zum Testen habe.

Ich bin relativ neu, also, wenn jemand eine Idee davon hat, wie ich das Problem beheben könnte, würde Ihre Hilfe sehr geschätzt werden, ich habe die Foren überprüft und konnte keine Antwort darauf finden funktioniert.

+1

https://cmake.org/cmake/help/v3.0/command/include_directories.html – cplusplusrat

+0

Oder, wenn Ihre CMake Version erlaubt es bereits (Version> = 2.8.12), verwende die moderneren ['target_include_directories'] (https://cmake.org/cmake/help/v3.0/command/target_include_directories.html). – ComicSansMS

Antwort

1

Verwenden Sie stattdessen Anführungszeichen.

#include "mechsys/adlbm/Domain.h" 

Der Unterschied liegt an dem Ort, an dem der Präprozessor nach der enthaltenen Datei sucht.

Für #include "Dateiname" sucht der Präprozessor im selben Verzeichnis wie die Datei, die die Direktive enthält. Diese Methode wird normalerweise verwendet, um vom Programmierer definierte Header-Dateien einzuschließen.

Für # enthalten die Präprozessor-Suchen in einer implementierungsabhängigen Weise, normalerweise in Suchverzeichnissen, die vom Compiler/IDE vordefiniert wurden. Diese Methode wird normalerweise verwendet, um Header-Dateien der Standardbibliothek einzuschließen.

Klirren 7.0.2 tatsächlich gibt Ihnen nützliche Fehler

main.cpp:9:10: error: 'mechsys/adlbm/Domain.h' file not found with <angled> include; use "quotes" instead