Ошибка LNK2019 при попытке использовать библиотеки MRPT в качестве внешней зависимости в решении VS2019 - PullRequest
0 голосов
/ 06 марта 2020

Я реализую SLAM-алгоритм в Visual Studio 2019, где я хочу использовать алгоритм ICP из библиотеки MRPT для сопоставления сканирования.

Я установил библиотеку MRPT как 32-битную из исходного кода, используя CMake. Проблема - это ошибка, которую я получаю при создании решения (показано ниже). Я предполагаю, что это потому, что я не добавил Дополнительные каталоги библиотек или Дополнительные зависимости для компоновщика, потому что я нигде не могу найти файлы .lib / .dll. Я попытался установить 64-разрядные предварительно скомпилированные двоичные файлы для Windows, где я нашел .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-файлы не являются проблема, что это может быть?

Извините, если мне не хватает какой-либо соответствующей информации, это мой первый пост. Просто дайте мне знать, и я предоставлю.

Любая помощь с благодарностью!

...