混合使用/ MT和/ MD编译的代码

slo*_*dog 7 build msvcrt visual-c++

我有一大堆代码,用/ MT编译(即期望静态链接到CRT).我需要将它与静态第三方库结合使用,该库是用/ MD构建的(即期望动态链接CRT).

理论上是否可以将两者连接成一个可执行文件而不重新编译?

如果我链接到/ nodefaultlib:msvcrt,我最终会得到少量未定义的引用__imp__wgetenv.我很想尝试在我自己的代码中实现这些功能,转发到wgetenv等等.这值得尝试,还是我会直接进入下一个问题?

不幸的是,我禁止将第三方代码打包成一个单独的DLL的简单选项: - /

Chr*_*isF 5

不。/MT 和/MD 是互斥的。

传递给给定链接器调用的所有模块都必须使用相同的运行时库编译器选项(/MD/MT/LD)进行编译。

来源