0

我正在 Visual Studio 2019 中实现 SLAM 算法,我想使用 MRPT 库中的 ICP 算法进行扫描匹配。因此,我使用 CMake 下载并编译了源代码,并将其添加为外部依赖项。

代码与这里的第一个示例几乎相同,包括(我相信)所有必要的标头。

我的项目是用 C++17 编写的,但似乎不是 MRPT 库,因为我收到以下错误:

C:\Program Files (x86)\mrpt-1.5.7\libs\opengl\include\mrpt\opengl\COpenGLScene.h(195,27): error C2039: 'bind2nd': is not a member of 'std'
C:\Program Files (x86)\mrpt-1.5.7\libs\base\include\mrpt\random\RandomGenerators.h(292,12): error C2039: 'random_shuffle': is not a member of 'std'
C:\Program Files (x86)\mrpt-1.5.7\libs\bayes\include\mrpt\bayes\CKalmanFilterCapable_impl.h(396,8): error C3861: 'bind1st': identifier not found

快速搜索发现这些函数random_shuffle, bind1st, bind2nd在 C++17 中被删除。

这是否意味着我必须手动编辑这些文件才能使用 C++17,或者是否有任何快速修复解决方案?例如,外部库是用受支持的 C++ 版本而不是 C++17 编译的?

4

0 回答 0