2016-07-26 43 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

回答