2014-01-08 2 views
1

Я не могу заставить AssaultCube компилироваться на Mac. Я загрузил последний источник и открыл проект Xcode внутри (поскольку запуск «make» дает мне ошибку «INTL/libintl.h» файл не найден »). У меня установлен Xcode, и я регулярно использую его для компиляции моего собственного кода, но их код просто не работает.Как скомпилировать AssaultCube на Mac? libintl.h missing

Прежде всего, источник имеет синтаксическую ошибку. Это дает мне ошибку переопределение типа здесь:

typedef unsigned int GLhandleARB; /* shader object handle */ 

Так что я заметил, что из, надеясь, что это будет не важно. Во-вторых, везде есть ошибки Mach-O Linker о libintl. Кроме того, есть некоторые ошибки в отношении ov_read, который, как представляется, является OGG-плеером.

Я пошел и установил gettext дважды, чтобы получить libintl и скачал пакет libintl для OS X ... сделать все равно не получится, а Xcode не будет компилироваться.

ответ

1

Я нашел проблемы. Их файл проекта просто испорчен. Во-первых, вам нужно переписать все библиотеки. В папке Frameworks папки Xcode в источнике есть такие вещи, как INTL.framework, которые вам нужно связать вручную. Во-вторых, вы должны установить тип сборки в 32-битный.

Теперь все, что мне нужно сделать, это исправить ошибки времени выполнения, которые я получаю. Честно говоря, почему он не может просто компилироваться и запускаться?

Обновление: Вот точные шаги для последней версии. Мне не нужно было так много сделать, чтобы он работал как в прошлый раз, и гамма-глюк исправлен. Я не знаю, есть ли у меня какие-то библиотеки, которые у вас не будут, но если они не будут созданы из-за недостающих библиотек, вы, вероятно, можете получить их из MacPorts. Прокомментируйте, пожалуйста, если есть какие-либо отсутствующие библиотеки, и я буду обновлять это:

# grab the src first 
git clone https://github.com/assaultcube/AC ac 
cd ac 
git checkout 76eb031 # latest release as of 1/29/2017; I goofed last time by just taking the latest commit, which had bugs 
open ./source/xcode/assaultcube.xcodeproj # should open Xcode 

В Xcode:

  • Выберите «AssaultCube» в качестве цели сборки.
  • Изменить целевую архитектуру на 32-разрядную
  • Перейти glext.h и прокомментировать все, что дает ошибку о переопределении типа при попытке построить. Для меня это было typedef unsigned int GLhandleARB;, typedef ptrdiff_t GLintptrARB; и typedef ptrdiff_t GLsizeiptrARB;
  • Строительство. Зайдите в папку ваших целей и найдите assaultcube.app. Вы также можете создать пусковую установку, но по какой-то причине в источнике запуска отсутствуют ресурсы, которые мне не нравятся, поэтому просто загрузите скомпилированную версию запуска Launchher/Game от https://github.com/assaultcube/AC/releases/download/v1.2.0.2/AssaultCube_v1.2.0.2.dmg и symlink (ln -s [source] [destination]) assaultcube.app, вы просто встроенный в AssaultCube.app/contents/gamedata. Должен заменить существующий .app.
  • Все установлено. Редактируйте, создайте и откройте панель запуска, на которую вы просто привязаны, чтобы проверить.
+2

Эй, можете ли вы воспроизвести шаги, если это возможно? Мне нужно также создать AssaultCube для Mac. Может быть, сделать PR для AssaultCube репозитория, если вы можете? Благодарю. –

+1

В конце концов, он скомпилирован и побежал, но имел этот «гамма» глюк, где цвета перепутались всякий раз, когда вы устанавливаете гамму. Но, конечно, я попробую повторить шаги, когда я вернусь домой сегодня, и тогда я обновлю ответ. Прежде всего, я должен был поставить шаги в своем ответе; извините, ТАК. – sudo

+1

@ScalaWilliam ОК, я обновил свой ответ шагами. Дайте мне знать, если у вас возникнут проблемы с библиотеками, и я продолжу его обновлять. – sudo

Смежные вопросы