【问题标题】:Static linking on Windows OSWindows 操作系统上的静态链接
【发布时间】:2017-03-04 17:08:05
【问题描述】:

我正在使用 LunarG SDK。我在 Lib 目录中找到 VKstatic.1.lib。当使用该 lib 而不是 vulkan-1.lib 链接时,我收到以下链接器错误:

VKstatic.1.lib(loader.obj):错误 LNK2019:未解析的外部符号 __imp_PathIsRelativeA 在函数 loader_platform_is_path_absolute 中引用

使用 VS2013 和 VS2015,64bit 项目。 我看到PathIsRelativeA来自Windows SDK。我将Linker->System设置为Windows (/SUBSYSTEM:WINDOWS),但它并没有解决错误。 静态链接是否需要一些预处理器标志?我还没有找到任何关于如何静态链接 Vulkan 的文档。

更新:

根据 Richard Critten 的建议,添加了 Shlwapi.lib。这解决了 v120 编译器的链接器错误,但为 v140 带来了更多错误。

【问题讨论】:

  • @RichardCritten 它解决了 VS2013 的问题,但为 VS2015 抛出了一堆新错误。可能他们的静态库是用 V120 编译器构建的。 ://
  • 这是什么新错误?
  • 使用由不同编译器版本创建的预构建静态库可能会出现问题。即使具有不同编译器/链接器标志的相同编译器也可能存在问题。最好的解决方法是从源代码构建库。
  • 对我来说,我不得不使用“Shlwapi.lib”。小写 s 失败。

标签: c++ vulkan


【解决方案1】:

我在这里(在其中一个 cmets 中)找到了修复 Visual Studio 2017 错误的方法:VKstatic.1.lib not linking

你基本上也只需要链接到cfgmgr32.lib(我不需要链接到Shlwapi.lib)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-28
    • 1970-01-01
    • 2016-01-26
    相关资源
    最近更新 更多