Связывание библиотек Macports с приложением XCode

Я пытаюсь распространять зависимости моего приложения с приложением.

У меня установлены пакеты macports librsvg, boost и cairo только для 64-битной системы на моей системе Snow Leopard. Когда я создаю пакет.app моей программы, он не работает на машинах без macports и соответствующих библиотек, потому что они не включены в приложение, которое ищет библиотеки в /opt.

Я пробовал флаг --static для статического связывания, но это вызвало ошибки libcrt0.

Каков наилучший метод для связывания библиотек MacPorts и их зависимостей с приложением OSX, подходящим для одиночного распространения?

3 ответа

Решение

Вы захотите скопировать библиотеки в свой пакет приложений, используя этап сборки файлов копирования. Dylibs должны быть помещены в Frameworks каталог в комплекте приложения. Вам также нужно будет добавить библиотеки в ваш проект XCode.

Я должен был просто сделать это для jsoncpp. Я перешел к настройкам компоновщика в проекте> Фазы сборки> Связать двоичные файлы с библиотеками, а затем использовал команду add other, чтобы перейти к пути моей библиотеки и добавить библиотеку из папки, которая по умолчанию будет находиться в каталоге opt / local / lib. настройка для Macport настройки компоновщика

получение заголовочных файлов было немного сложнее. В этом случае я перешел к usr / Include, нашел файл / папку с заголовками, скопировал его в свой проект и в файле cpp добавил строку включения с кавычками ("")

например, переместить каталог /usr/Include/json в папку проекта RestTemplate с помощью copy. затем добавлен в main.cpp

#include "json/json.h"

Попробуйте использовать py2app для создания автономного приложения.

Другие вопросы по тегам