Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/156.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何处理缺少的dll,如msvcp100.dll、msvcp100.dll?_C++_Windows_Qt_Dll - Fatal编程技术网

C++ 如何处理缺少的dll,如msvcp100.dll、msvcp100.dll?

C++ 如何处理缺少的dll,如msvcp100.dll、msvcp100.dll?,c++,windows,qt,dll,C++,Windows,Qt,Dll,如果用户的机器可能没有类似msvcp100.dll、msvcp100.dll这样的dll,我该如何处理这种情况?我不想我的软件不安装在用户的机器上,因为这种错误。我一直在想,要么找到一个工具并将每个需要的dll复制到运行的可执行文件中,要么尝试构建一个(最终可能会有类似的结果)。我见过一些应用程序不提供这些dll,这取决于用户如何获取、安装等。对于那些用户来说,找到合适的dll匹配版本以及所有这些都可能是一个问题。我想避免它 在现实世界的应用程序中,这通常是如何解决的?在安装程序中安装它们。在安

如果用户的机器可能没有类似msvcp100.dll、msvcp100.dll这样的dll,我该如何处理这种情况?我不想我的软件不安装在用户的机器上,因为这种错误。我一直在想,要么找到一个工具并将每个需要的dll复制到运行的可执行文件中,要么尝试构建一个(最终可能会有类似的结果)。我见过一些应用程序不提供这些dll,这取决于用户如何获取、安装等。对于那些用户来说,找到合适的dll匹配版本以及所有这些都可能是一个问题。我想避免它


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

在安装程序中安装它们。

在安装程序中安装它们。

部署Qt应用程序是一个不容易解决的问题。应该理解,您需要重新分发编译器的DLL以及Qt DLL。对于MSVC2010编译器,您可以将
msvcp100.dll
msvcr100.dll
文件放在可执行文件附近。
至于Qt,windows部署的最简单方法是使用
windeployqt
命令提示符util

更新。这在实际应用中通常是如何解决的?
由于应用程序的部署是一项复杂的任务,因此没有能够确定所有依赖关系的全自动工具。例如,您的应用程序可以依赖于许多东西,如库DLL、编译器DLL、注册表项、驱动程序、环境变量、计算机重新启动要求、ActiveX/COM组件、其他已安装的应用程序等。

但是有一些工具可以帮助你解决这个问题它们可以为目标项目配置一次,然后一直工作。这被称为,另一个类似的概念是
至于最终用户的创建安装包,有很多工具,例如,…
部署Qt应用程序是一个不容易解决的问题。应该理解,您需要重新分发编译器的DLL以及Qt DLL。对于MSVC2010编译器,您可以将
msvcp100.dll
msvcr100.dll
文件放在可执行文件附近。
至于Qt,windows部署的最简单方法是使用
windeployqt
命令提示符util

更新。这在实际应用中通常是如何解决的?
由于应用程序的部署是一项复杂的任务,因此没有能够确定所有依赖关系的全自动工具。例如,您的应用程序可以依赖于许多东西,如库DLL、编译器DLL、注册表项、驱动程序、环境变量、计算机重新启动要求、ActiveX/COM组件、其他已安装的应用程序等。

但是有一些工具可以帮助你解决这个问题它们可以为目标项目配置一次,然后一直工作。这被称为,另一个类似的概念是
至于为最终用户创建安装包,有很多工具,例如,…
安装程序脚本,放置命令下载应用程序需要运行的dll,以及在应用程序源代码中,将其置于仅在其运行的文件夹中使用dll
如果您正在使用NSI安装程序,请使用此安装程序脚本,输入一个命令下载应用程序需要运行的dll,并在应用程序源代码中,将其仅用于运行该应用程序的文件夹中的dll
如果您正在使用NSI安装程序,请使用此

I为我的每个Qt应用程序创建一个NSI安装程序,并将Visual Studio Redrisibutable作为安装的可选组件。虽然我的Qt构建是基于CMake的,但我为我的每个Qt应用程序创建了一个NSIS安装程序,并将Visual Studio Redris作为安装的可选组件。虽然我的Qt构建是基于CMake的,但我在文章中提到的dll只是一个例子。我正在考虑找一个工具来自动完成这项工作。我只是想知道其他人是怎么做的。我已经在使用windeployqt,但它没有复制我提到的那些ms*DLL。是我遗漏了什么,还是util只处理Qt的dll?我在文章中提到的dll只是一个例子。我正在考虑找一个工具来自动完成这项工作。我只是想知道其他人是怎么做的。我已经在使用windeployqt,但它没有复制我提到的那些ms*DLL。我是否遗漏了什么,或者util只处理Qt的dll?