1、這是一個錯誤引發的慘案:錯誤提示如下:
-
- 在進行點雲程序調試時,出現錯誤:[error C1083:無法打開包括文件:“OpenMesh/Core/IO/MeshIO.hh”:No such file or directory],如下圖所示:

下圖為報錯代碼:

2、原因分析及解決方案:
-
- 幾經搜索,發現是沒有安裝OpenMesh,打開OpenMesh官網 http://www.openmesh.org/,然后點擊左側的 " Download" ,查找自己需要的版本下載。
因為本人程序運行環境為:WIN7系統、VS2012、PCL-1.7.2-AllInOne-msvc2012-win32、源程序為32位平台編譯。所以我選擇如下圖所示版本:
上圖中 6.3DLL 比 6.3(static)多出四個dll文件,其他無區別,具體如下圖所示(本人選擇的下載的是6.3DLL):

2.1、下載並安裝完成后,進行相應的配置。
-
- 在【解決方案資源管理器】中右擊項目,然后依次選擇【屬性】--> 【C/C++】 -->【常規】-->【附加包含目錄】:在【附加包含目錄】中添加路徑:E:\PCL-VS2012\OpenMesh6.3\OpenMesh 6.3\include(此處僅為示例,要以自己的路徑為准):
- 預處理器定義。依然在上一步的頁面中操作,選擇【預處理器】-->【預處理器定義】,如果窗口中沒有 “_USE_MATH_DEFINES”,則將其輸入到【預處理器定義】窗口中(直接將雙引號中的內容添加進去就行,下圖窗口中的"_USE_MATH_DEFINES=0"為項目自帶的)。
-
然后選擇【鏈接器】-->【常規】-->【附加庫目錄】,在窗口中輸入:E:\PCL-VS2012\OpenMesh6.3\OpenMesh 6.3\lib(此處僅為示例,要以自己的路徑為准):
- 在【解決方案資源管理器】中右擊項目,然后依次選擇【屬性】--> 【C/C++】 -->【常規】-->【附加包含目錄】:在【附加包含目錄】中添加路徑:E:\PCL-VS2012\OpenMesh6.3\OpenMesh 6.3\include(此處僅為示例,要以自己的路徑為准):
-
- 之后選擇【鏈接器】-->【輸入】-->【附加依賴項】,在其中輸入“OpenMeshCored.lib" 和 "OpenMeshToolsd.lib”:
2.2、配置完成后,應用並確定配置,接下來運行程序。
-
- 又出現錯誤[error C2248:"OpenMesh::ArrayKernel::vertices_"無法訪問private成員(在“OpenMesh::ArrayKernel”類中聲明)”]:
解決方案:在錯誤列表中雙擊錯誤,定位到報錯代碼的位置。然后將“private”更改為“public”:

-
- 繼續運行程序,然后又報錯:[無法啟動此程序,因為計算機中丟失OpenMeshCored.dll。嘗試重新安裝該程序以解決此問題。]
-
- 解決方案:在OpenMesh 6.3的安裝文件夾下找到 “OpenMeshCored.dll”,然后將其復制到 C:\Windows\System32 和 C:\Windows\SysWOW64文件夾下(兩個文件夾都要復制進去)。
- 繼續運行程序,然后出現錯誤,如下圖所示(是不是有種 我們好像在哪兒見過 的感覺),怎么辦?參照上面的方案。
3、來都來了,不讓你們看看結果怎么能行。

感謝博客(https://blog.csdn.net/My__long/article/details/80030824)
結案。

