2012-02-09 2 views
5

Итак, у меня есть приложение SFML 1.6, которое хорошо работает на Mac OS X Lion. В настоящее время я имею в виду, что фреймворки SFML находятся в/Library/Frameworks, и он работает хорошо, однако для установки на другие компьютеры ему требуются привилегии администратора. Поэтому я хочу, чтобы выполнить одно из следующих действий:SFML 1.6 без admin priviliges

  1. Уметь установить библиотеки в/User/ИДК/Library/Frameworks или аналогичные

  2. пакет библиотеки и приложение в образ диска Mac и он ссылки на библиотеки оттуда

  3. Статически связать библиотеки

Теперь, так как программа построена с использованием терминала ж с make-файлами, я бы предпочел, чтобы решение находилось в терминале, а не в XCode, но если это абсолютно необходимо, я думаю, что я мог каким-то образом импортировать проект в XCode.

Так может кто-нибудь объяснить (точно), как сделать любое из трех выше, в зависимости от того, что проще всего сделать?

Кстати, я использую LLVM GCC 4.2, который поставляется с XCode 4.1 для компиляции.

EDIT:

Как насчет того кто пытается два других, помимо статического связывания?

ответ

3

Я решил это так ... вроде пустых пунктов бонусов ... УДАЧИ ДЛЯ ВАС! : P

я сделал что-то очень простое и был удивлен, что никто не предложил это:

Я использовал install_name_tool для изменения имен и зависимостей динамических библиотек SFML, так что они могут быть размещены в том же каталоге, исполняемый файл или в специальной папке, но это относится к каталогу исполняемого файла. Поэтому он не требует прав администратора, и я легко упаковал все это в пакет приложений.

+1

Активирован за хороший ответ, но стыдно за то, что вы лишили народ своей щедрости! :) – Danra

+0

Я всегда буду давать щедрость, если кто-нибудь даст хорошее и рабочее решение. : D – slartibartfast

2

Возможно, вы должны статически ссылаться на SFML. Для этого вам придется скомпилировать SFML как статическую библиотеку. Самый простой способ сделать это - это, вероятно, изменить проект Xcode, который поставляется с SFML ("SFML with Intel 64 bits.xcodeproj"). Вам нужно изменить тип библиотек Mach-O на Static Library.

Я загрузил измененную версию SFML with Intel 64 bits.xcodeproj, которую я использую, вы можете получить ее here. (Этот проект требует GCC4.2 и поэтому работает только с Xcode 3).

Статический к SFML очень похож на динамически ссылки на него, просто помните, что вы также должны связать с Cocoa.framework, OpenGL.framework и CoreFoundation.framework.

Также обратите внимание, что если вы хотите развернуть OSX 10.4 или более раннюю версию, вам следует статически ссылаться на libfreetype. libfreetype, который поставляется с ОС, находится в другом месте в 10.4 и более ранних версиях, и это вызывает проблемы, когда он динамически связан.

+0

XCode теперь, похоже, не SFML ... это ошибки при компиляции. Есть ли другой способ сделать это? Потому что кажется SFML 1.6 имеет проблемы с XCode на Mac 10.7 ... – slartibartfast

+0

@myrkos: Какие проблемы? Пожалуйста, будьте более конкретными. – Mankarse

+0

Хорошо. Таким образом, в «Custom Shell Script» говорится: «cp: 3/build/xcode /../../ include/SFML /: нет такого файла или каталога». Это ошибка. – slartibartfast