“适用于Mac的可再发行二进制文件中的崩溃课程,使用QT和其他一些库”?

时间:2011-10-23 04:06:37

标签: macos qt static-libraries vtk redistributable

好的,所以我是一名工程师/应用数学家,只有轻微的技术人员对某些软件的Linux版本印象深刻,但希望它适用于Mac(医生......)

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

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

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

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

1 个答案:

答案 0 :(得分:2)

您是否有任何特定原因要将Qt + VTK + Boost与应用程序静态链接?在Mac上,对于像这样的图书馆,我想不出任何理由(许可除外)为什么静态链接比动态更好。

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

Qt附带了一个名为macdeployqt的实用程序,它自动将Qt框架(加上插件)复制到bundle中,然后修复app二进制文件(使用install_name_tool),以便动态链接器知道查找应用包。您可能需要手动为VTK和Boost执行此操作,如果它们不是作为框架自动构建的,则可能会更复杂。他们是受欢迎的图书馆,互联网上应该有关于使用VTK / Boost部署Mac应用程序的指南。

另外,我不会使用MacPorts为此目的安装Qt。 Qt二进制文件available from Nokia工作正常,它们是通用的(为32位和64位构建,以防您需要同时定位)。

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