如何删除 msvc dll(例如:msvcr100.dll)依赖性以运行 qt 应用程序? 我开发了一个 qt 应用程序,它在 dveloper 机器上运行良好,但无法在任何其他机器上运行,并给出错误消息“程序无法启动,因为您的计算机中缺少 MSVCR100.dll”。我可以通过在应用程序文件夹中复制该文件来解决此错误,但我不想复制,而是想静态链接或以其他方式删除该依赖项。
提前致谢
最佳答案
问题是您可能正尝试在安装了与用于构建应用程序本身的版本不同的 Visual Studio (MSVC) 版本的计算机上运行应用程序。
通常,正确的解决方案是在目标机器上安装相应的 Visual Studio 可再发行组件包。它不是“解决方法”或“hack”,因为如果您希望使用使用不同运行时库等构建的应用程序,那么它是意料之中的。您可以在这里阅读更多相关信息:
Redistributing Visual C++ Files
是的,有点可惜,显然MS没能做到最理想,但毕竟绕过还是很简单的。请注意,目标机器不仅会出现您的应用程序问题,而且通常还会出现任何以类似方式分发的问题。
解决该问题的另一种方法是使用与目标机器上安装的环境相同的环境构建应用程序,但如果您需要将应用程序提供给具有通用设置的多台机器,这很容易出问题。现在,我会说这是“hackish”方法。
您需要从此处获取针对此特定问题的可再发行组件:
Microsoft Visual C++ 2010 Redistributable Package (x86)
Microsoft Visual C++ 2010 Redistributable Package (x64)
即使您因某种方式对它进行静态黑客攻击而失败,在将您的应用程序与 DLL 和静态库等一起使用时,您也需要处理令人讨厌的后果。
关于c++ - 删除 msvc dll 依赖以运行 qt 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21042764/