2010-08-29 2 views
7

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

После немного обширного поиска, я понимая сложность строительных проектов в рамках IDE Xcode в и вариации параметров сборки/цели и т.д.

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

благодарит

+1

Это не похоже на проблему с кодом xcode. Похоже, что почтовый клиент запутался - какая программа электронной почты вы используете и используете ваши клиенты? – Mark

+0

Я отправляю сообщения по электронной почте через Yahoo, но я подозрительно, если это причина, по которой я отправил файлы .exe с ПК через их систему ... – NBG

ответ

0

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

Для того, чтобы иметь возможность поделиться приложения с наименьшим количеством усилий, вам необходимо выяснить:

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

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

+0

Я использую то, что xcode термины «инструмент командной строки», который строит C++ в частности. Нет изображений, звуков и т. Д. Я нахожусь на Leopard OS и не ожидал столкнуться с трудностями в попытке создать консольную программу, чтобы быть универсальной. И да, я попытался построить универсальный двоичный файл. Надеюсь, что это дает достаточно контекста. Спасибо за помощь - это полезный материал. – NBG

5

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

chmod +x /path/to/hanoi 

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

+0

Нет, нет, это полезно. Хотя, думаю, мой вопрос сформулирован неправильно; или, по крайней мере, он неполный. Может быть, я должен спросить об этом так: Знаете ли вы, может ли я скомпилировать простые текстовые (без графики, звуков и т. Д.) Игру C++ для кросс-платформенной совместимости; в частности, знаете ли вы, как/if xcode может скомпилировать и построить продукт для запуска в любом месте консоли? Я понимаю, что мой вопрос может быть плохо информирован. Большое спасибо за ваши информационные ответы. – NBG

+0

Если кросс-платформенный вы имеете в виду как Mac, так и Windows, то no-Xcode не имеет компилятора для исполняемых файлов, отличных от Mac. Но определенно можно перекрестно скомпилировать для разных версий Mac OS X. –

+1

Если вам действительно нужно иметь возможность создавать для Mac, Windows и Linux из Xcode, тогда Xcode имеет «пользовательские шаги сборки», которые могут запускать любые сценарий командной строки. Затем вы можете использовать инструментальную цепочку кросс-компилятора, которая запускается из командной строки. См. Например, http://lilypond.org/gub/ (хотя это определенно переполняет и даже не может работать на Mac, это просто показать, что это возможно). Мой совет? Найдите машину Windows и/или Linux, скопируйте файлы на C++ и скомпилируйте для Windows/Linux отдельно. Однако вы можете протестировать свой код в Xcode. Удачи! – btown

0

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

+0

Пробовал это, изначально. Отправляя через Yahoo, он каждый раз создает «текстовый файл». Я пробовал переименование, альтернативные сборки (развертывание, выпуск), безрезультатно. Да, я только что написал версию инструмента командной строки. Нет графики, звуков и т. Д .; только код, включая стандартные заголовки. Спасибо за ваш своевременный ответ. Очень ценю помощь, здесь. – NBG

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

  • Нет связанных вопросов^_^