已经采用python版open3D实现和验证了功能,但是在C++迁移上却遇到了不少问题:
1、可能是与本地的编译器存在差异,在使用open3D git上的winows版本时,存在地址访问冲突和std::bad_alloc等问题。前者在适用IO读写时必现,后者在生成kdtree时必现。
2、编译问题。无法绕开1中的问题,在本地重新编译open3D,所遇到的主要问题是
1)第三方库下载失败问题。如下图所示的错误既是下载失败问题。此时就要根据downloading后的地址将第三库下载下来,并放到3rdparty_downloads文件加下的对应文件夹内。图中需要下载webrtc_60e6748_win.zip并放到3rdparty_downloads/webrtc/下。
2) Microsoft.CppCommon.targets(241,5): error MSB8066。具体报错如下图所示,此问题可在网上搜索到很多解决方案,但都不适用于此。
最终在排查时,发现在报MSB8066错误之前,会出现如下图所示的提示,因此该问题是下载DirectXD-Headers失败引起的。在https://github.com/microsoft/DirectX-Headers.git下载DirectX-Headers,并拷贝到build文件加下的uvatlas/src/ext_directxheaders夹下,编译成功。