Intereting Posts

Компиляция кода C ++ (XCode) для iOS и Android. Это реально?

Я хочу попытаться написать и скомпилировать код C ++ для iOS и Android-устройств. Я использовал XCode в течение некоторого времени (я писал код C ++ для MacOS и Windows). Поэтому я хочу использовать XCode для своих целей.

Проблема в том, что я не знаю, как скомпилировать код на C ++ как для Android-устройств, так и для iPad / IPhone. Я хочу использовать кроссплатформенное решение для iOS и Android, но не хочу использовать такие фреймворки, как Marmalade (c ++) или другие.

Это реально или нет? 🙂 Есть ли учебники или другие полезные материалы?

Solutions Collecting From Web of "Компиляция кода C ++ (XCode) для iOS и Android. Это реально?"

Вы можете определенно использовать C ++ на iOS и Android. Я написал свои собственные игровые движки для обоих.

Xcode – это обычная среда IDE для iOS и поддерживает «Objective-C ++» (компилятор поддерживает как Objective-C, так и C ++ ). Вам нужно будет написать тонкую оболочку в Objective-C, чтобы взаимодействовать с ОС, но вы можете написать все остальное на C ++, если хотите. Если вы загружаете инструменты командной строки Xcode, вы также можете создавать скрипты.

Eclipse – обычная IDE для Android, и если вы загружаете NDK, вы можете использовать JNI для взаимодействия между Java и C ++. Как и в iOS, вам по крайней мере требуется, чтобы оболочка Java взаимодействовала с ОС.

Однако вы не ограничены Eclipse и Xcode. Например, вы можете использовать emacs и / или использовать CMake, чтобы вы могли немного упростить настройку проекта. Emacs – очень мощная и гибкая среда разработки, но она имеет очень крутую кривую обучения и не очень проста в установке. Если вы сделаете это на Mac, я бы порекомендовал emacsformacosx и установил ECB и автозаполнение . CMake – это в основном система построения кросс-платформы, которая позволяет вам создавать много разных файлов проекта (Visual Studio, Xcode, Eclipse и т. Д.) Из одного дерева источников. Подобно emacs, это супермощная, но довольно крутая кривая обучения. Если вы хотите сразу же перейти, вы, скорее всего, захотите начать с Xcode и Eclipse. Если вы работаете на ПК, вам понадобится Mac VM или Hackintosh, чтобы использовать Xcode и cygwin для использования NDK для Android (пользователи Macbook Pro могут сразу повеселиться с небольшими хлопотами).

Естественная разработка Android определенно намного сложнее. У вас не так много сегментирования устройств, с которыми можно бороться, но встроенная отладка не очень проста. Вы должны запустить сервер GDB на устройстве и подключиться к нему, чтобы установить точки останова, и многие люди делают это из командной строки. Я слышал, что некоторые люди имеют успех с Tegra Tools для Eclipse, если вы хотите использовать IDE на основе графического интерфейса.

Я бы определенно рекомендовал сначала разрабатывать iOS, так как у вас есть более мощные инструменты в вашем распоряжении от IDE. Вы можете отслеживать утечки памяти, код профиля, легко устанавливать точки останова;) и т. Д. После того, как вы разработаете функцию на iOS, вы сможете бороться с файлами .mk и другой добротой разработки на базе Android.

Ниже приведена информация о основных объектах и ​​жизненном цикле для iOS:

  • Основные объекты
  • Жизненный цикл

И для Android:

  • Жизненный цикл

Пока вы хорошо играете с ОС и уважаете жизненный цикл приложения, вы можете совершать звонки на логику C ++. Вы можете сделать это напрямую с помощью iOS, но с Android вы должны разблокировать вызовы через JNI. Если вы инкапсулируете специфику платформы, вы можете делиться логикой C ++ между обеими платформами.

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

Вот несколько ситуаций, когда это может иметь смысл:

  • Если вам нужно использовать библиотеку, созданную на C / C ++
  • Если вы хотите создать собственную платформу agnostic framework для своих приложений или игр
  • Если вы работаете с критическими приложениями реального времени / производительности, такими как игры

Я не говорю, что вы ДОЛЖНЫ использовать C ++ в этих ситуациях, так как многие люди разработали игры в Objective-C. Я просто говорю, что может быть что-то, что нужно учитывать, если вам нужно извлечь максимальную пользу из аппаратного обеспечения, или просто хотите что-то более портативное.