исполняемый продукт xcode для проекта c ++ - PullRequest
7 голосов
/ 29 августа 2010

Я закончил простую числовую версию игры «Башни Ханоя», используя инструмент командной строки xcode на C ++.Привыкнув к компиляторам ПК, таким как borland и visual-c, я пытался «поделиться» игрой с другими по электронной почте, просто подключив исполняемый продукт, созданный xcode.Тем не менее, получатели не могут запустить программу, поскольку она отображается в другом формате - обычно это машинный код, звучит так.

После небольшого поиска я понимаю сложность создания проектов внутриIDE xcode и вариации настроек / целей сборки и т. д.

Кто-нибудь знает, как создать автономный исполняемый файл c ++ для универсального запуска?Я не выхожу за пределы библиотеки STL для этой игры.Я очень признателен за любую помощь.

спасибо

Ответы [ 3 ]

5 голосов
/ 29 августа 2010

OS X основана на Unix, который использует простые двоичные файлы (т.е. без расширения имени файла) в качестве исполняемых файлов.Если у них есть определенное «разрешение на выполнение», их можно дважды щелкнуть, чтобы запустить как исполняемые файлы или запустить из командной строки.Однако это разрешение нельзя отправить по электронной почте - это метаданные внутри самой файловой системы, и это имеет смысл с точки зрения безопасности (вы не хотели бы, чтобы спаммеры отправляли вам исполняемые вирусы по электронной почте, верно?).Поэтому, когда получатель получает двоичный файл, ему необходимо выполнить следующую команду командной строки, предполагая, что «hanoi» является именем двоичного файла:

chmod +x /path/to/hanoi

Если вы действительно хотите упаковать егокак приложение с двойным кликом, вам нужно предоставить ему собственный пользовательский интерфейс и упаковать его как .app, а затем поместить этот .app (который на самом деле является папкой с расширением .app) в архив для распространения.Извините, если это больше работы, чем вы надеялись.Надеюсь, это поможет!

0 голосов
/ 30 августа 2010

Если вас устраивает инструмент командной строки, а не приложение с двойным щелчком мыши, достаточно заархивировать его и прикрепить к электронному письму.Обязательно соберите универсальный, если кто-то, кому вы отправляете, может использовать Mac на базе PowerPC.Да, и установите для цели развертывания минимальную ОС, которую может использовать любой получатель.

0 голосов
/ 29 августа 2010

Совместное использование приложений в точечных выпусках одной и той же ОС на Mac может быть крайне затруднено (по крайней мере, насколько позволяет личный опыт).

Чтобы поделиться своим приложением с наименьшими усилиями, вам необходимо выяснить:

  • Какой это тип проекта? Используете ли вы какие-либо ресурсы, такие как изображения и т. Д.?
  • Какую версию ОС используют ваши друзья? Если их нет на Mac, вам не повезло (или вам придется перекомпилировать их ОС).
  • Если они работают на Mac, убедитесь, что у вас одинаковые версии ОС, если вы работали на Leopard, а кто-то работает на SnowLeopard, ваше приложение может просто не работать. (Я также столкнулся с проблемами между Mac OS 10.5.4 и 10.5.3, поэтому держите пальцы скрещенными.)
  • Проверьте, какое оборудование вы используете. Вы создаете только для своего оборудования (скажем, MacIntel) или вы создаете Universal Binary?
  • Убедитесь, что все ресурсы упакованы в ваш пакет приложений. Убедитесь, что ваше приложение использует только относительные пути.
  • Проверьте, не пишете ли вы в специальные папки (т. Е. Используйте только temp и / или места для записи слов, если вам нужно).

Хотелось бы, чтобы я дал более подробный / точечный ответ, но, к сожалению, вам придется выяснить некоторые ответы самостоятельно (без какой-либо другой конкретной информации об ошибке, которую вы получаете).

...