代码之家  ›  专栏  ›  技术社区  ›  Malium

静态CRT链路

  •  2
  • Malium  · 技术社区  · 8 年前

    我在链接列表中包括以下内容:

    • libcmt。lib公司
    • LIBCPMT。LIB公司
    • libucrt。lib公司
    • libvcruntime。lib公司

    但我得到了这些链接错误,说这些符号丢失了:

    • __imp\u copysignf
    • __imp\uu aligned\u free
    • __imp\uu aligned\u malloc
    • __imp\U modf
    • __imp\U modff

    我已经添加了libucrt(其中必须是malloc函数,但仍然存在错误),我缺少了什么lib?

    编辑:我正在使用针对Windows 10版本的Visual Studio 2017 15.4.4。10.0.16299.0

    1 回复  |  直到 8 年前
        1
  •  3
  •   ivanmoskalev    7 年前

    再次检查您是否已设置 /MT compiler flag . 如果未设置,则可能默认为动态链接设置。那样的话 _MT 缺少预处理器定义,这导致编译器使用对动态运行时函数的调用。你可以看到 __imp__ 前缀通常为 comes from DLL import libraries .