Неразрешенный внешний символ при ссылке на сторонние библиотеки из UE4

РЕДАКТИРОВАТЬ:
Обновленный пост, чтобы избежать ссылок на сторонние сайты и собирать всю необходимую информацию здесь.

Любая информация приветствуется. Если вам нужна дополнительная информация, пожалуйста, сообщите мне, и я отредактирую сообщение с новыми деталями.
Вот некоторая полезная информация для начала.

Ошибки.

Исходный код.

Я пытаюсь использовать сторонний SDK, состоящий из одного файла lib и, по сути, одного заголовочного файла. Мне удается заставить intellisense работать, но я получаю ошибки компоновщика, хотя я изменил файл build.cs своего проекта, добавив путь к библиотеке.

public OculusTest(TargetInfo Target)
{
PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore" });
// Add static libs
PublicAdditionalLibraries.Add(Path.Combine(ThirdPartyPath, "RPLidar/Libraries", "rplidar_driver.lib"));
// Add a path with the .h that has the function definitions
PublicIncludePaths.Add(Path.Combine(ThirdPartyPath, "RPLidar", "Includes"));
}

Я также проверил, что я что-то упустил, но в отдельном проекте C ++ я использую те же файлы и только те же файлы, и это работает. Рассматриваемые файлы

RPLidar.h и rplidar_driver.lib

Поэтому я предполагаю, что ошибка в том, что я не смог сообщить компилятору Unreal, где найти файл lib.

Заранее спасибо за всю информацию относительно этого пути слишком упряма ошибка.

0

Решение

Я наконец нашел свою ошибку.

После проверки того, что одна и та же версия VSC ++ использовалась для компиляции обеих программ, и что я проверил, что она в правильной конфигурации, я изменил одну дополнительную вещь, которая заставила все это работать.

Вместо компиляции в многопоточный LIB-файл я скомпилировал код в виде DLL-файла.
Я сделал это, открыв свойства проекта LIB и перейдя в C / C ++ -> Code Generation -> Runtime Library и установив его в многопоточную DLL (/ MD).
Под Общим я установил тип конфигурации как статическую библиотеку (.lib).

1

Другие решения


По вопросам рекламы [email protected]