从UE4链接到第三方库时未解析的外部符号

时间:2015-02-02 15:42:12

标签: 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和rplidar_driver.lib

因此我假设错误在于我没有告诉虚幻编译器在哪里找到lib文件。

提前感谢您提供有关这种方式的所有信息太顽固的错误。

1 个答案:

答案 0 :(得分:1)

我终于找到了我的错误。

在检查了使用相同版本的VSC ++编译这两个程序之后,我检查了它是否处于正确的配置中,我改变了一个额外的东西,使它全部运行。

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