在 Mac 和 Windows 上部署 Qt+Boost 应用程序

Posted

技术标签:

【中文标题】在 Mac 和 Windows 上部署 Qt+Boost 应用程序【英文标题】:Deploy Qt+Boost application on a Mac and Windows 【发布时间】:2010-01-06 01:08:35 【问题描述】:

如何在 Mac OS X 或 Windows 平台上部署 Qt+Boost 应用程序。

我使用 Qt Creator + Qt 4.6 + MacOS 10.6

如何将我的应用程序编译成发行版,以便在另一台没有安装 Qt 库的计算机上运行它?

【问题讨论】:

【参考方案1】:

我发布了使用 Qt 构建的 Windows 应用程序,并使用 Dependency Walker 工具首先确定需要哪些 Qt 和 MinGW DLL。对于 Qt 4.6 应用程序,您需要始终提供 Qt bin 文件夹中的 mingwm10.dlllibgcc_s_dw2-1.dll 文件(默认位置为 C:\Qt\2009.05\qt\bin)。

根据您使用的 Qt 模块将决定交付哪些 Qt DLL - 您始终需要交付 QtCore4.dll。如果您使用网络,那么您将需要 QtNetwork4.dll 等等 - Dependency Walker 会告诉您。

请注意,您应该只发送在 C:\Qt\2009.05\qt\bin 中找到的 Qt 文件,而不是 C:\Qt\2009.05\bin 中的那些 - 后一个文件夹包含 MSVC 构建的 Qt Qt Creator 和其他工具使用的 DLL,并且假设您使用 MinGW 构建,这些将不适用于您的应用程序。)

我将这些文件安装在应用程序文件夹中,如果您有多个使用 Qt 的产品,这并不理想。如果您对所有项目使用相同版本的 Qt,那么您可以将 Qt 文件安装到一个特殊文件夹中,然后将该文件夹添加到用户的 PATH 中。 YMMV,这本身就是一个大话题。

【讨论】:

如果多个产品使用相同的库,Windows 上的另一种方法是将它们安装到 YourProgramFilesFolder\YourCompany 并在其中有一个通用的 Libraries 文件夹.【参考方案2】:

对于 Qt,请参阅docs on deployment(Windows、Mac)。请记住,Qt 相当大 - 如果您决定静态链接,请考虑构建仅包含您需要的模块的 Qt 版本。

大多数 boost 库只是头文件,因此不需要部署。对于那些不是(线程,...)的人,请参阅有关构建和部署它们的相应文档,就像任何其他库一样。

【讨论】:

对不起,我知道这个文档,但我什么都不懂。我尝试从这些文档中完成所有工作,但我无法在另一台计算机上运行我的应用程序。 那么请帮助我们了解您的问题到底出在哪里。 重复现有的分步指南没有多大意义...为什么不尝试一下并告诉我们您遇到的问题?

以上是关于在 Mac 和 Windows 上部署 Qt+Boost 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows 上部署 Qt 5 应用程序

在 Windows 上部署 Qt 5 应用程序

在 Mac OSX 上部署 Qt 应用程序时缺少文件

Qt程序部署到多平台,如何?

Qt Mac OS 应用程序部署缺少框架

使用 Qt 在 OS X/Mac 上构建 C++ 库