我在對pcl1.9.1 + vtk8.2.0 + cuda10.0進行源碼編譯的過程中出現如下的兩個錯誤:
pcl_1.9.1/apps/modeler/src/surface_actor_item.cpp:87:11: error: ‘class vtkDataSetMapper’ has no member named ‘ImmediateModeRenderingOff’
mapper->ImmediateModeRenderingOff ();
和
pcl_1.9.1/apps/modeler/src/points_actor_item.cpp:90:11: error: ‘class vtkDataSetMapper’ has no member named ‘ImmediateModeRenderingOff’
mapper->ImmediateModeRenderingOff();
經過一番搜索之後,發現是因爲vtk8.10之後的版本中將vtkMapper的ImmediateModeRenderingOff()方法移除了,所以爲了讓pcl1.9.1代碼編譯通過,只需要將錯誤提示中對應的那一行代碼註釋掉即可,或者更換爲更低版本的vtk也行。我是通過註釋掉上述出錯的兩行代碼,因爲ImmediateModeRenderingOff()方法不是必須的操作,最後通過了編譯。