我正在 Visual Studio 2019 中实现 SLAM 算法,我想使用 MRPT 库中的 ICP 算法进行扫描匹配。
我使用 CMake 从源代码将 MRPT 库安装为 32 位。问题是我在构建解决方案时收到的错误(如下所示)。我认为这是因为我没有为链接器添加附加库目录或附加依赖项,因为我在任何地方都找不到 .lib/.dll 文件。我尝试为 Windows 安装 64 位预编译的二进制文件,在那里我发现了一个 lib 文件夹中的 .lib 文件,该文件在使用源代码手动编译时不会出现 - 但不能使用相同的 lib,因为我需要 32 -位(我尝试链接到它们,但是除了一堆关于库是 64 位而目标是 32 位的警告之外,还发生了同样的错误)。
代码与这里的第一个示例几乎完全相同,(我相信)包括所有必要的标头。
产生的错误(对于我尝试从库中使用的每个类,我还会收到更多相同的错误):
particle.obj : error LNK2019: unresolved external symbol "__declspec(dllimport) public: __thiscall mrpt::poses::CPose2D::CPose2D(double,double,double)" (__imp_??0CPose2D@poses@mrpt@@QAE@NNN@Z) referenced in function (function)
快速的问题是:从源代码编译时不应该生成 .lib/.dll 文件吗?或者图书馆中是否嵌入了一些东西所以我不需要它们,在这种情况下一定有其他问题?
更复杂的问题是:如果丢失的 .dll/.lib 文件不是问题,那会是什么?
抱歉,如果我遗漏了任何相关信息,这是我的第一篇文章。只要让我知道,我会提供。
任何帮助是极大的赞赏!