Ускоренный курс в «распространяемый двоичный файл для Mac, использует QT и некоторые другие библиотеки»? - PullRequest
0 голосов
/ 23 октября 2011

Хорошо, так что я - инженер по прикладной математике, и кто-то, на кого легкая техническая поддержка, был впечатлен версией linux некоторого программного обеспечения, но хочет его для Mac (Доктора ...)

Может кто-то указать мне накак распространять исполняемый файл для Mac?До того, как я отказался от Windows, атомарным решением было скопировать кучу DLL в их папку System32.Некоторые подвопросы:

1) Хорошо, я вижу "sudo macports install XYZ".Позволит ли это мне статически создавать приложения QT?Или, предположим, у них установлен QT, как мне заставить мое приложение найти его на своем компе?

2) Может быть, есть пример использования VTK + QT + Boost для создания приложения для Mac?

Мои извинения за неопределенный вопрос: если бы я знал, что методично искать, я бы сделал это.

1 Ответ

2 голосов
/ 23 октября 2011

Есть ли конкретная причина, по которой вы хотите статически связать Qt + VTK + Boost с приложением?На Mac, для таких библиотек, я не могу придумать ни одной причины (кроме лицензирования), почему статическое связывание предпочтительнее динамического.

Взгляните на ссылку «Развертывание приложения в Mac OS X», которую разместил Bavarious.В нем объясняется, как приложения Mac хранятся в пакетах, что позволяет приложению, составленному из множества файлов, отображаться пользователю в виде одного файла.Библиотеки также могут храниться в пакете (вместе с заголовочными файлами), и в этом случае это называется структурой.Любые необходимые фреймворки могут храниться внутри пакета приложения, что делает приложение автономным.

Qt поставляется с утилитой под названием macdeployqt, которая автоматически копирует фреймворки Qt (плюс плагины) в комплект, а затем исправляетдвоичный файл приложения (с использованием install_name_tool), поэтому динамический компоновщик знает, как искать в комплекте приложений.Вероятно, вам придется сделать это вручную для VTK и Boost, что может быть более сложным, если они не собираются автоматически как фреймворки.Это популярные библиотеки, хотя в Интернете должны быть руководства по развертыванию приложений Mac с VTK / Boost.

Кроме того, я бы не стал использовать MacPorts для установки Qt для этой цели.Двоичные файлы Qt , доступные от Nokia , прекрасно работают, и они универсальны (созданы как для 32-битных, так и для 64-битных, на случай, если вам нужно использовать оба).

КстатиЯ не особо разбираюсь в Windows, но не думаю, что добавление библиотек DLL в System32 - это хороший способ развертывания библиотек в Windows.Для приложения Qt, которое я сделал, мы поместили DLL-библиотеки Qt (и DLL-файлы mingw / gcc) в ту же папку, что и .exe, и это работало нормально.

...