我上传了我的(VS2013)项目文件夹并将其提供给我团队的其他成员,但是当他们尝试构建/运行它时,使用Visual Studio 2012他们得到了这个错误,它也发生在他们的Visual Studio版本上2013。
The program can't start because MSVCR100D.dll is missing from your computer. Try reinstalling the
program to fix this problem.
他们重新安装了VS2010,但没有去。
我还尝试在代码生成选项中使用/ MT静态链接我的项目,但现在我得到了:
Unresolved External Symbol __free_dbg libcmptd.lib cout.obj
.... 25更多......
我怎样才能获得它,以便我的项目可以在我的团队成员pc上构建/运行?如何解决未解决的外部问题?它似乎纯粹是用普通的Microsoft文件发生的。
答案 0 :(得分:0)
此消息通常表明dll在您的应用程序中直接或间接引用并且丢失。
最后的'D'告诉我们这是文件的Debug版本,这是随Visual Studio 2010安装提供的DLL文件。因此,MSVCR100D.dll将随Visual Studio 2010的安装一起提供。
当然,您可能会遗漏其他版本2008(MSVCR90D)2010(MSVCR100D)2012(MSVCR110D)或2013(MSVCR120D),每个dll都是根据Visual Studio版本提供的。
有几种方法可以解决这个问题:
- 检查以确保您正在编译您的所有组件 项目处于发布模式。如果这不能解决问题继续 接下来的步骤。
- 您可以在本地安装Visual Studio 2010来解决此问题 机。这不是我推荐的,但肯定会 克服这个问题
- 您也可以从此第三方网站下载该文件 将其复制到您的项目箱: http://www.dll-files.com/dllindex/dll-files.shtml?msvcr100d
此选项是最低建议选项。- 醇>
运行依赖Walker,看看哪个文件依赖于MSVCR100D.dll 并尝试并修复该文件,以打破您的依赖。您可以在此处下载:http://www.dependencywalker.com/
检查以确保您的项目正在链接正确的版本 CRT和您可能正在使用的任何其他库(例如,MFC,ATL, 等)
注意:单独安装可再发行组件无法解决此问题,因为可再发行组件仅包含文件MSVCR100.dll的发布版本(请注意没有'D')
答案 1 :(得分:0)
您正在混合使用不同版本的编译器构建的C ++库(我们知道它们中的一些与VC10运行时库的调试动态版本相关联)。这是not supported,因为不同的编译器版本具有不同的ABI。
要解决这个问题,您需要找到使用与项目参数匹配的参数构建的库。他们应该建立起来:
您可以尝试在网络上查找预建版本,也可以自己从源代码构建库。通常,您需要为项目提供多个配置/平台,因此,您将需要多个版本的库。
如果您的搜索不成功(例如,如果没有针对已关闭源库的VS2013构建),您可以将项目回滚到另一个版本的编译器并重新开始。
任何尝试链接不兼容的库即使以某种方式成功也会导致随机崩溃。
答案 2 :(得分:-2)
您的项目中是否有可能使用某些使用Visual Studio 2010构建的组件/库,这需要MSVCR100D DLL?