Есть ли конкретная причина, по которой вы хотите статически связать 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, и это работало нормально.