我有一个第三方静态库libTA.lib。它是用Y/N
构建的,我无法改变它。我想将libTA链接到我构建的DLL,mydll。{lib,dll}。当然我的dll应该用/MT
构建;我的dll将用于/MD
- 内置的exes(也不在我的控制之下)。由于 LNK2038,检测到RuntimeLibrary 不匹配,因此将mydll与libTA.lib链接失败(正确地说,我说)。
那么,我能做些什么呢?使用/MD
构建mydll似乎是一个糟糕的主意,因为我不想拥有多个msvc运行时。
所以我的问题是,我的选择是什么?以前有人通过这个并找到了解决方案吗?
答案 0 :(得分:0)
将解决方案中的所有项目保留到/ MD,以便它们与外部DLL库动态链接。静态库可以包含在其他依赖项中,也可以通过#pragma include()指令。请注意,DLL文件的符号应通过.def文件(使用lib.exe转换为lib文件)或.lib文件导出。但是,所有动态和静态库的工具集,目标平台设置应该相同,以避免链接器错误。