SFML 1.6 без прав администратора - PullRequest
5 голосов
/ 09 февраля 2012

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

  1. Возможность установки библиотек в / User / idk / Library / Frameworks или аналогичных

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

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

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

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

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

EDIT:

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

Ответы [ 2 ]

3 голосов
/ 16 февраля 2012

Я решил это так ... что-то напрасная трата наградных очков ... ОТСУТСТВУЕТ ВАМ! : P

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

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

2 голосов
/ 09 февраля 2012

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

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

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

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

...