【问题标题】:How to resolve an unresolved external symbol error with MSVCRTD.lib如何使用 MSVCRTD.lib 解决未解决的外部符号错误
【发布时间】:2017-07-20 21:54:00
【问题描述】:

我有一个有链接错误的 C++ Visual Studio DLL 项目:

MSVCRTD.lib(tncleanup.obj) : 错误 LNK2019: 函数“void __cdecl __scrt_initialize_type_info(void)”中引用的未解析外部符号 __imp__InitializeSListHead@4 (?__scrt_initialize_type_info@@YAXXZ)

我将项目属性、链接器、常规、显示进度设置为“搜索的库”以验证是否引用了正确版本的 MSVCRTD.lib。

【问题讨论】:

    标签: c++ visual-studio linker unresolved-external


    【解决方案1】:
    1. 查找未解析的外部符号:InitializeSListHead 以查找它定义在哪个库中:

    https://msdn.microsoft.com/en-us/library/windows/desktop/ms683482(v=vs.85).aspx

    Kernel32.lib

    1. 在 Visual Studio 中,将 Project Properties、Linker、General、Show Progress 设置为“For Libraries Searched (/VERBOSE:Lib)”

    2. 开始构建并检查输出以查看引用“Kernel32.lib”的“搜索库”。

    在我的情况下,我发现另一个 Kernel32.lib 被错误地引用。

    【讨论】:

      猜你喜欢
      • 2011-09-03
      • 2010-11-20
      • 2011-10-21
      • 2012-10-21
      • 2014-05-12
      • 2014-05-14
      • 2021-02-04
      • 2016-07-10
      相关资源
      最近更新 更多