我的程序无法在没有 VS MSVCR100.dll 的计算机上运行
Posted
技术标签:
【中文标题】我的程序无法在没有 VS MSVCR100.dll 的计算机上运行【英文标题】:My program doesnt run with computers without VS MSCR100D.dll is missing 【发布时间】:2015-05-24 00:02:21 【问题描述】:一段时间以来,我一直在努力开发一个程序。我现在需要将我的 .exe 发送给一些朋友,以便他们测试我的碰撞代码和模拟的直观性。
但是,当我将 .exe 提供给朋友时,它会这样做......我会发布一张图片,但我还没有可信度。这是正文
PlatformDemoA (1).exe- System Error
The program can't start because MSCR100D.dll is missing from your computer. Try reinstalling the program to fix the problem.
我假设这是因为他们的计算机上没有 VS 2010。 他们有什么方法可以让这个 .exe 在没有 Visual Studio 的情况下在他们的计算机上运行?网上每个地方都说要安装 Visual Studio。
我预测也许创建一个“发布”版本而不是调试可能会解决这个问题。但是,当我尝试构建一个时...突然出现与我包含的文件有关的错误。显然我应该设置链接器以将它们包含在发布版本中......我找不到那个设置。以下是错误:
1>------ Build started: Project: PlatformDemoA, Configuration: Release Win32 ------
1> Triangle.cpp
1>Triangle.cpp(2): fatal error C1083: Cannot open include file: 'GLTools.h': No such file or directory
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
我继续将所有这些内容复制到“发布”文件夹中。这并没有解决问题。我想我真的不明白文件的链接。如果你愿意,我可以上传项目文件夹,这样你就可以告诉我有多少次我不必要地复制了文件。
我的平台是windows,我的目标平台也是windows。
【问题讨论】:
MSVCP100D.dll missing 的可能重复项 您需要知道发布版本使用与调试版本完全不同的一组项目设置(导入库、搜索路径等)。如果您在开发期间一直在调整调试版本的配置,那么您现在必须对发布版本进行所有相同的更改。 在哪里更改发布版本的项目设置? @BenVoigt BTW 我在 Visual Studio 2010 中 只需右键单击您的项目并选择属性。这是您调整调试配置的同一个地方。该对话框默认更改您的活动配置,但顶部有一个下拉菜单,您可以使用它来回切换。 【参考方案1】:MSCR100D.dll
是调试运行时库,不建议(实际上甚至微软不允许)发布链接到它的可执行文件。将其更改为“发布”模式,并告诉您的客户安装 Visual c++ 运行时,或将MSVCR100.dll
包含到文件夹中,或者静态链接运行时。无论如何,发布 DLL 应该已经安装在大多数系统上。
您可以在此处设置 Visual Studio 中的链接选项:
项目属性 -> 配置属性 -> C/C++ -> 代码 生成 -> 运行时库
【讨论】:
另外,无论如何您都不能分发 MS 调试运行时。这将违反 Microsoft 的 EULA。 如果我不希望它与 MSCR100D.dll 库一起运行,我应该将其设置为什么? @Andrew 我告诉过你。将其设置为使用“relaese”运行时库。 (它被称为MSVCR100.dll
没有 D
) - 请参阅上面的答案
我的选项是这样的link。我是选择一个还是输入 dll 名称?我对这部分编程非常不熟悉(链接文件... dll的...运行时...编译设置)所以请与我联系。
选择不包含“调试”的选项之一。 “多线程”静态链接运行时,使您的 exe 更大。 “多线程 DLL”添加了一个指向应该安装在大多数计算机上的 MSVCR100.dll
的动态链接(如果没有,用户必须安装 Visual C++ Runtime Redistributable,或者您可以简单地将 DLL 添加到包含 exe 的文件夹中)以上是关于我的程序无法在没有 VS MSVCR100.dll 的计算机上运行的主要内容,如果未能解决你的问题,请参考以下文章
已完美解决由于找不到MSVCR100.dll,无法继续执行代码。重新安装程序可能会解决此问题。DirectX修复工具下载