2016-12-06 5 views
0

Wenn mein Programm mit dieser CGAL umfassen beispielsweise ausgeführt wird:CGAL Fehler: Eigen3 erforderlich ist -> Eigen scheint in Ordnung zu sein, obwohl

#include <CGAL/Epick_d.h> 

ich zwei Fehlermeldungen, die lesen:

C1189 #error: Eigen3 is required 

und

#error directive: Requires Eigen 

Sie verweisen auf cartesian_la_base.h und constructors.h jeweils. Es finde ich das folgende Stück Code:

#ifndef CGAL_EIGEN3_ENABLED 
#error Requires Eigen 
#endif 

So scheint es mir, dass die CGAL_EIGEN3_ENABLED Flag nicht gesetzt ist. Ich kann jedoch weder mit CGAL noch mit Eigen ein Problem finden, daher bin ich etwas verwirrt, warum das so ist. Ich habe eine Umgebungsvariable auf .../Eigen gesetzt und das Verzeichnis unter Eigenschaften -> c/C++ -> Allgemein -> Zusätzliche Include-Verzeichnisse sowie in Linker -> Allgemein eingefügt.

Seltsamerweise scheint es so gut wie niemanden zu geben, der die gleiche Fehlermeldung erhält, nach meinem Erfolg mit dem Googeln der Sache.

Ich benutze Visual Studio 2015

Hoffentlich genug Informationen. Prost

+0

Haben Sie eine Kopie von Eigen auf Ihrem Computer? Im Lösungsverzeichnis? Irgendwo anders? Wenn ja, wo (vollständig redigierter Pfad)? Welche relevanten zusätzlichen Include-Verzeichnisse haben Sie festgelegt? –

+0

Haben Sie oder cmake 'CGAL_EIGEN3_ENABLED' nicht definiert? Hat Ihre cmake-Datei folgende Zeilen: 'find_package (Eigen3 3.1.0) if (EIGEN3_FOUND) include ($ {EIGEN3_USE_FILE}) endif()' (Entschuldigung für das Fehlen von Zeilenumbrüchen in Kommentaren)? –

+0

Definieren Sie einfach 'CGAL_EIGEN3_ENABLED' und Sie sollten dann in Ordnung sein. Dieses Flag soll gesetzt werden, wenn die Verwendungsdatei von Eigen in cmake eingeschlossen wird. – sloriot

Antwort

0

In meinem Fall das Hinzufügen der Zeile

#define CGAL_EIGEN3_ENABLED 

das Problem gelöst. Es scheint also das einzige Problem zu sein, dass die Flagge nicht richtig gesetzt wurde.

+0

Anscheinend kann ich meine eigene Antwort für 2 weitere Tage nicht akzeptieren. Sorry für Spam –

+0

Tut mir leid, das kann in der Tat überraschend sein, und es ist nützlich, die Informationen hier zu haben. Beachten Sie, dass ab Compiler, die "__has_include" unterstützen, das Makro automatisch mit CGAL-4.10 beginnt. –

Verwandte Themen