-1

好的,所以我是一名工程师/应用数学的人,有些软件的 linux 版本给我留下了深刻的印象,但我希望它适用于 Mac(医生......)

有人可以指出如何重新分发 Mac 的可执行文件吗?在我放弃 Windows 之前,原子解决方案是将一堆 DLL 复制到他们的 System32 文件夹中。一些子问题:

1)好的,我看到“sudo macports install XYZ”。这将允许我静态构建 QT 应用程序吗?或者,假设他们安装了 QT,我如何让我的应用程序在他们的电脑上找到它?

2)也许有一个例子,使用VTK + QT + Boost,为Mac构建应用程序?

我很抱歉这个模糊的问题,如果我知道有条不紊地搜索我会这样做。

4

1 回答 1

2

您想将 Qt+VTK+Boost 与应用程序静态链接有什么具体原因吗?在 Mac 上,对于像这样的库,我想不出任何理由(许可除外)为什么静态链接比动态链接更可取。

查看 Bavarious 发布的“在 Mac OS X 上部署应用程序”链接。它解释了 Mac 应用程序如何存储在捆绑包中,从而允许由许多文件组成的应用程序在用户面前显示为单个文件。库也可以存储在一个包中(连同它们的头文件),在这种情况下,它被称为框架。任何需要的框架都可以存储在应用程序包中,使应用程序自包含。

Qt 带有一个名为的实用程序macdeployqt,它自动将 Qt 框架(加上插件)复制到包中,然后修复应用程序二进制文件(使用install_name_tool),以便动态链接器知道在应用程序包中查找。您可能需要为 VTK 和 Boost 手动执行此操作,如果它们不是作为框架自动构建的,这可能会更加复杂。虽然它们是流行的库,但 Internet 上应该有关于使用 VTK/Boost 部署 Mac 应用程序的指南。

此外,我不会为此使用 MacPorts 来安装 Qt。诺基亚提供的 Qt 二进制文件工作得很好,而且它们是通用的(为 32 位和 64 位构建,以防您需要同时针对两者)。

顺便说一句,我不是特别喜欢 Windows 的人,但我不认为将 DLL 放入 System32 是在 Windows 上部署库的好方法。对于我制作的 Qt 应用程序,我们将 Qt DLL(和 mingw/gcc DLL)放入与 .exe 相同的文件夹中,并且运行良好。

于 2011-10-23T06:44:13.037 回答