c++ - 从 UE4 链接到第三方库时无法解析的外部符号

标签 c++ visual-studio-2013 unreal-engine4

编辑: 更新帖子以避免链接到第三方网站并在此处收集所有必需的信息。

欢迎提供任何信息。如果您需要更多信息,请通知我,我将使用新的详细信息编辑帖子。 以下是一些有用的信息。

Errors.

Source code.

我正在尝试使用由一个 lib 文件和一个头文件组成的第三方 SDK。我设法使 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 and rplidar_driver.lib

因此我假设错误是我没有告诉 Unreal 编译器在哪里可以找到 lib 文件。

预先感谢您提供有关这种方式过于顽固的错误的所有信息。

最佳答案

我终于找到了我的错误。

在检查是否使用了相同版本的 VSC++ 来编译这两个程序并且我检查了它的配置是否正确之后,我更改了一个额外的东西,使它一切正常。

我没有将代码编译为多线程 LIB 文件,而是将代码编译为 DLL 文件。 我通过打开 LIB 项目属性并转到 C/C++ -> 代码生成 -> 运行时库并将其设置为多线程 DLL (/MD) 来完成此操作。 在常规下,我将配置类型设置为静态库 (.lib)。

关于c++ - 从 UE4 链接到第三方库时无法解析的外部符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28281328/

相关文章:

c++ - Qt无法保存像素图

c++ - 这如何与返回值优化一起使用?

c++ - 指向类成员的函数指针

c++ - VC2013 move 运算符不递归执行 move

使用 Visual Studio 的 C++ 编译错误(LNK1120 和 LNK2019)

c++ - 虚幻引擎中四元数旋转云台问题

unreal-engine4 - 如何在没有 InputAction 的情况下获得 Action Key?

c++ - 继承的 const 属性和初始化(错误?)

VS2013中的C99 stdint.h错误

c++ - 将 UE4 与 Visual Studio 2017 结合使用