我知道有一些类似的问题,但我不认为他们真的有和我一样的要求。
我们的 DLL 是使用 Visual Studio 2005 编译的,并且由于安装限制,必须与特定版本的 CRT 链接。这是绝对的,用最新版本重新编译它不是解决方案。
我们最近更新了 Boost 库。但是,当我构建 Boost 时,它会自动使用最新的 CRT。现在,当我将 Boost 与我们的程序链接时,它会创建对 CRT 的最新(错误)版本和旧(正确)版本的 CRT 的依赖。对最新版本的依赖需要消失。
这个问题的最佳解决方案是什么?目前,我能想到的最好的方法是使用旧版本重建 Boost,但我不知道如何在不修改源代码的情况下轻松做到这一点。
如果有办法强制 Visual Studio 全局使用特定版本的 CRT(而不是基于每个项目),那就太好了。或者只是简单地删除最新版本的 CRT 的方法,但我很确定这是不可能的,因为我认为它被认为是操作系统的一部分。