我知道有一些类似的问题,但我不认为他们真的和我的要求一样。解决多重CRT问题
由于安装限制,我们的DLL使用Visual Studio 2005编译并且必须与链接使用特定版本的CRT。这是绝对的,重新编译它与最新版本不是一个解决方案。
我们最近更新了我们的Boost库。但是,当我构建Boost时,它会自动使用最新的CRT。现在,当我将Boost与我们的程序联系起来时,它会对CRT的最新(错误)版本和CRT的旧版本(正确版本)进行依赖。需要去依赖最新版本。
这个问题的最佳解决方案是什么?目前,我能想到的最好的方法是使用旧版本重建Boost,但我不知道如何在不修改源代码的情况下轻松完成此操作。
如果有办法强制Visual Studio全局使用特定版本的CRT(而不是基于每个项目),那就太好了。或者只是简单地删除最新版本的CRT,但我很确定这是不可能的,因为我认为它被认为是操作系统的一部分。
开始“不是每个”的行不完全正确,如果“否”是“注意”? – 2010-03-08 17:40:45
我们只使用Visual Studio 2005进行构建。区别在于CRT的一个版本来自最新的Service Pack,另一个(正确)版本来自较早的Service Pack。我们希望Visual Studio _always_使用旧版本。 – 2010-03-08 17:59:02
Visual Studio 2005有两个版本,直到日期。 1.'RTM'2.'SP1'。每个CRT的小版本都会有所不同。但是,如果您在同一台计算机上(同一Visual Studio)同时构建项目和Boost,则两者都将链接到相同的CRT。因此,您不会遇到任何链接到不同CRT版本的问题。总是倾向于使用最新的SP针对Visual Studio构建,因为SP是有理由发布的。 – 2010-03-09 11:32:30