Konflikt zwischen Boost, OpenCV und Eigen Bibliotheken?

8

meine Frage ist etwas verwandt mit Static Verknüpfung von Boost und OpenCV-Bibliotheken mit Eclipse CDR. Fehler , während ich versuche, ein bisschen mehr zu tun, als hier beschrieben: Wie erstellt man ein Programm, das alle Bilder im Ordner mit Boost und OpenCV lesen kann? , nämlich ein Verzeichnis durchlaufen mit Laden Sie die Dateisystem-Bibliothek von Boost hoch und bearbeiten Sie die Bilddateien mit OpenCV.

Ich kompilierte Dateisystem und andere Bibliotheken mit MinGW und versuche, Boost 1.45, OpenCV 2.2 und Eigen2 mit Eclipse CDT auf einem Windows 7 64-Bit-System auszuführen. Die Dateisystembibliothek kompiliert und läuft ohne Probleme, wenn sie in einem Projekt selbst verwendet wird, aber in Kombination mit den anderen beiden Bibliotheken von oben bekomme ich die folgenden Fehler:

%Vor%

usw.

Irgendwelche Hinweise, warum diese Bibliotheken miteinander in Konflikt geraten könnten? Der Compiler kommt nicht über den Include des Dateisystems hinaus (d. H. Zeile 18).

    
vkotor 16.03.2011, 15:10
quelle

1 Antwort

9

Das Verwenden des boost :: filesystem-Namespace vor dem Einschließen von Eigen verursacht, dass der Compiler fehlschlägt:

%Vor%

schlägt fehl, aber

%Vor%

funktioniert.

Der Grund dafür ist, dass, wenn boost :: filesystem dem globalen Namespace hinzugefügt wird, es diesen verschmutzt und dazu führt, dass Code (hier: eigen), der vom unverschmutzten Namespace abhängt, beim Kompilieren Fehler verursacht. Es ist nichts Seltsames daran. Normalerweise sollten Sie keine Zeilen verwenden, bevor Ihre Includes abgeschlossen sind.

    
Greystache 27.03.2011, 13:49
quelle