如何处理缺少像msvcp100.dll,msvcp100.dll这样的dll?

时间:2016-01-29 19:40:42

标签: c++ windows qt dll

如何处理用户机器可能没有像msvcp100.dll,msvcp100.dll这样的dll的情况?我不希望我的软件没有安装在用户的机器上,因为这种错误。我一直在考虑找到一个工具并将每个所需的dll复制到可执行文件运行中或尝试构建一个static version of Qt(最终可能会有相同的结果)。我看过那些没有提供这些dll的应用程序,并且由用户来获取,安装等等。这些用户可能会遇到问题,找到正确的dll匹配版本等等。我想避免它。

这在现实世界的应用程序中通常如何解决?

3 个答案:

答案 0 :(得分:4)

您在安装程序中redistribute

答案 1 :(得分:1)

部署Qt应用程序是一个不安问题。你应该明白,你需要重新分配编译器的dll以及Qt dll。对于 msvc 2010 编译器,您可以将msvcp100.dllmsvcr100.dll文件放在可执行文件附近。
至于Qt,Windows部署的最简单方法是使用windeployqt命令提示符util。

更新。 这在实际应用中通常如何解决?
没有全自动工具,它可以确定所有依赖项,因为应用程序的部署是一项复杂的任务。例如,您的应用程序可以依赖于很多东西,例如库dll,编译器的dll,注册表项,驱动程序,环境变量,计算机重启要求,ActiveX / COM组件,其他已安装的应用程序等等。
但是有一些工具可以帮助你解决这个问题。 可以为目标项目配置一次,然后一直工作。这称为 Build Automation ,另一个类似的概念是 Continuous Integration
至于最终用户的创建安装包,有很多工具,例如Nullsoft Scriptable Install SystemInno SetupQt Installer FrameworkWiX等...... List of installation software

答案 2 :(得分:0)

安装程序脚本,下载命令以下载应用程序需要运行的dll,并在应用程序源代码中,将其用于仅在运行它的文件夹中使用dll 如果您使用的是NSI安装程序,请使用此example