2016-07-26 22 views
0

Ich versuche gerade, den Hough-Transformationsebenen-Detektor des 3DTK zu verwenden (http://slam6d.sourceforge.net/). Wenn ich versuche, es mit der Option EXPORT_SHARED_LIBS zu kompilieren, erhalte ich Linker-Fehler im Projekt cxspare_s.Hough-Transformationstafel-Detektor 3DTK

1>cs_convert.obj : error LNK2019: unresolved external symbol 'cs_dl_spalloc' referenced in function 'cs_l_real' 
1>cs_convert.obj : error LNK2019: unresolved external symbol 'cs_ci_spalloc' referenced in function 'cs_i_complex' 
1>cs_convert.obj : error LNK2019: unresolved external symbol 'cs_cl_spalloc' referenced in function 'cs_l_complex' 

Die spalloc Funktionen im cs.h Header-Datei in Pfad 3DTK \ 3rdparty \ cxsparse-4.4.4 \ suitesparse, definiert sind, aber sie scheinen nicht umgesetzt werden. Zumindest kann ich sie nirgends finden.

Kompilieren der statischen Bibliotheken funktioniert jedoch einwandfrei.

Ich arbeite auf Windows 7 mit

  • Visual Studio 2015 Professionelle
  • 3DTK Revision 1179
  • Boost 1,60
  • OpenCV 3.10
  • zlib 1.2.8
  • VTK 7.0

Wer weiß, was los ist?

Weil ich nicht das ganze 3DTK benötige, klonte ich auch nur den Hough Transform Plane Detector (https://github.com/midas-journal/midas-journal-820). Ich entfernte die HoughPlanes.cpp, definierte vtkHoughPlanes als Export Klasse und kompilierte sie, um die * .lib und * .dll Datei zu erhalten, was perfekt funktionierte. Die Verknüpfung gegen die lib auch funktioniert, aber sobald ich den vtkHoughPlanes-Header enthalten, bekomme ich hunderte Male die gleichen Fehler:

Error C2666: "vtkOStreamWrapper::operator <<": 6 overloads have similar conversions C:\PROGRA~1\VTK\include\vtk-7.0\vtkTextProperty.h 44 

so dass der Compiler nicht weiß, Insertion, welcher Strom Operatoren < < wegen Mehrdeutigkeit zu verwenden . Alle Fehler führen in mehreren VTK-Headern zum selben VTK-Makro "vtkGetVector3Macro". Aber die Fehler und die Makrodefinition sind alle im VTK selbst. Was kann ich dagegen tun? Ich kann in meinem Code nirgendwo tippen, um den Operator eindeutig zu machen, weil ich die Ursache des Fehlers in meinem Code nicht kenne. Es gibt keine Instanz von vtkOStreamWrapper im Projekt selbst.

Da der Hough Transform Plane Detector selbst ein ziemlich altes Projekt ist, ist es möglich, dass VTK 7 einfach nicht mehr kompatibel ist?

Ich wäre dankbar für irgendwelche Ideen.

Greets Dave

+0

Können Sie dieses Problem lösen? Ich habe das gleiche Problem beim Kompilieren von 3DTK. – Afnan

+0

Kein Entschuldigung. Da mir die Zeit ausgegangen war, benutzte ich die PCL RANSAC Flugzeugerkennung, die perfekt für mein Problem funktionierte. – boFFeL

Antwort