有没有办法部署使用 MSVC 编译的 Qt 桌面应用程序,使其“可移植”(只需从文件夹运行 exe,不安装任何东西,甚至不安装 VC_redist)?
当然,如果在目标计算机上安装了 Microsoft Visual C++ Redistributable,则可以使用它,但是是否可以在不安装它的情况下使其运行(例如,通过将一些 dll 从 vcredist 放入应用程序的文件夹)?
有没有办法部署使用 MSVC 编译的 Qt 桌面应用程序,使其“可移植”(只需从文件夹运行 exe,不安装任何东西,甚至不安装 VC_redist)?
当然,如果在目标计算机上安装了 Microsoft Visual C++ Redistributable,则可以使用它,但是是否可以在不安装它的情况下使其运行(例如,通过将一些 dll 从 vcredist 放入应用程序的文件夹)?
正如您评论的那样,您可以使用 windeployqt 添加与 Qt 相关的 DLL 和资源。至于其他所需的 DLL,您可以使用Dependencies找到它们并手动将它们复制到您的应用程序文件夹中,包括 MSVC DLL。
PS:我知道手动复制这些 DLL 效率低且容易出错。这就是为什么我问有没有办法搜索和复制所有的 DLL 依赖项?,但我还没有找到一个足够聪明的工具来自动完成这项工作。不过,您可以尝试评论中提到的那些工具,例如NDepend。
如果您静态构建/链接您的应用程序,您将只有 1 个没有 DLL 的 .exe。第二种方法是使用共享库构建您的应用程序,在运行时您的应用程序将在 PATH 和当前目录中搜索这些 DLL,因此您只需将所有需要的 DLL 放在此文件夹中。你如何管理你的 Qt 库?