2016-07-26 47 views
0

我目前正在尝试使用3DTK的霍夫变换平面探测器(http://slam6d.sourceforge.net/)。当我尝试使用EXPORT_SHARED_LIBS选项对其进行编译时,我在cxspare_s项目中收到链接器错误。霍夫变换平面探测器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' 

功能,在路径3DTK的cs.h头文件中定义的spalloc \的3rdParty \ cxsparse-4.4.4 \ suitesparse,但他们似乎并没有得到执行。至少我无法在任何地方找到他们。

虽然编译静态库是完美的。

我在Windows 7上运行带有

  • 的Visual Studio 2015年专业
  • 3DTK修订1179
  • 提升1.60
  • OpenCV的3.10
  • 的zlib 1.2.8
  • VTK 7.0

任何人都知道什么是错的?

因为我不需要整个3DTK,我也克隆了霍夫变换平面探测器(https://github.com/midas-journal/midas-journal-820)。我删除了HoughPlanes.cpp,将vtkHoughPlanes定义为Export类并将其编译为获取完美工作的* .lib和* .dll文件。链接反对的lib也可以,但是只要我包括vtkHoughPlanes头,我得到数百次同样的错误:

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

所以编译器不知道是不是因为歧义的要使用的流插入operatoren < < 。所有的错误都会在几个VTK头文件中导致相同的VTK宏“vtkGetVector3Macro”。但是错误和宏定义都在VTK本身,所以我能做些什么呢?我不能在我的代码中的任何位置注释,以使操作符无歧义,因为我不知道代码中的错误原因。项目本身没有vtkOStreamWrapper的实例。

由于霍夫变换平面探测器本身是一个相当古老的项目,是否有可能,VTK 7不再兼容?

我会很感激任何想法。

电贺 戴夫

+0

你能解决这个问题吗?编译3DTK时遇到同样的问题。 – Afnan

+0

没有抱歉。因为我用完了,我使用了PCL RANSAC平面检测,这对我的问题非常有效。 – boFFeL

回答