У меня есть рабочий проект Xcode, который включает Cocos2d в одном из представлений. Теперь мне нужно добавить Box2d. Я попытался перетащить папку Box2D в каталог libs моей папки cocos2d-2.x-ARC-iOS и добавить к этой цели, но при компиляции получаю следующее:
(in b2BroadPhase.cpp)
'Box2D/Collision/b2BroadPhase.h' file not found
Я уверен, что это только первая из многих ошибок, которые я получу. Какой шаг мне не хватает, чтобы собрать все файлы Box2d в моем проекте?
Все файлы box2d перечислены в источниках компиляции для цели cocos2d-library.
И почему это так сложно сделать? Почему она не работает, как любая другая библиотека?
И - нужно ли мне переименовывать каждый отдельный .m в моем проекте в .mm? Это почти невозможно, так как это большой проект xcode со многими файлами. Я просто пытаюсь использовать Box2d в одном представлении.
Дополнительная информация в ответ на ответ, данный LearnCocos2D-
Моя структура папок (в Finder) выглядит так:
Root = MyProject.xcodeproj, папка MyProject, папка cocos2d-2.x-ARC-iOS В папке cocos2d-2.x-ARC-iOS есть папка с именем libs. Внутри этой папки у меня есть папка Box2D, а также Cocos2d, CocosDenshion и т. д.
В XCode у меня есть ПРОЕКТ (MyProject) И 2 ЦЕЛИ (cocos2d-library, MyProject). Существуют «Пути поиска заголовков» как для ПРОЕКТА, так и для ЦЕЛЕЙ. Какой мне поставить? И должен ли он быть рекурсивным или нет? И когда я перетаскиваю папку Box2D в Xcode, какую цель я устанавливаю?
Файл моего проекта находится в папке /Users/me/Dropbox/iOS/MyProject. Итак, что именно я ввожу для пути поиска заголовков? /Users/me/Dropbox/iOS/MyProject/cocos2d-2.x-ARC-iOS/libs не работает.
Еще одно обновление - /Users/me/Dropbox/iOS/MyProject/cocos2d-2.x-ARC-iOS/libs, так как путь поиска заголовков в MyProject TARGET, похоже, помогает мне преодолеть ошибки Box2D. Затем у меня была ошибка «cassert», файл не найден. Преодолели это, изменив контроллер представления, его родителя и AppDelegate на тип файла «Источник Objective-C++», как вы предложили. И сейчас...
Теперь у меня есть множество ошибок в NSObjCRuntime.h, NSZone.h, NSObject (ожидаемый неквалифицированный идентификатор, неизвестное имя типа «NSString» и т. д.). Таким образом, создается впечатление, что вы либо создаете приложение с помощью Box2d/Cocos2d, либо приложение UIKit. Попытка иметь и то, и другое — полный кошмар.