【发布时间】:2018-02-08 03:19:47
【问题描述】:
我有一个第三方静态库 libTA.lib。它是用/MT 构建的,我无法改变它。我想将 libTA 链接到我正在构建的 DLL 中,mydll.{lib,dll}。当然我的dll应该用/MD构建;我的 dll 将与/MD-built exe 一起使用(也不在我的控制之下)。由于 LNK2038,检测到 RuntimeLibrary 不匹配,将 mydll 与 libTA.lib 链接失败(我会说是正确的)。
那么,我能做些什么呢?使用/MT 构建 mydll 似乎是一个糟糕的主意,因为我不想拥有多个 msvc 运行时。
所以我的问题是,我有什么选择?有没有人经历过这个并找到了解决方案?
【问题讨论】:
-
我只想为 DLL 选择
/MT。我不明白为什么在 EXE 中有一个 CRT 而在 DLL 中有另一个 CRT 会如此糟糕,前提是没有新的/删除的 malloc/free fopen/fwrite/fclose(以及所有喜欢...)发生EXE/DLL 边界。
标签: windows visual-studio visual-c++ dll msdn