0

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

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

错误。

源代码。

我正在尝试使用由一个 lib 文件和基本上一个头文件组成的第三方 SDK。我设法让智能感知工作,但即使我修改了项目的 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 文件。

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

4

1 回答 1

1

我终于找到了我的错误。

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

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

于 2015-02-02T19:38:22.473 回答