2013-06-06 2 views
2

Я работаю над проектом Cocos2D-X. Я пытаюсь организовать мои файлы кода в подпапки внутри папки Classes. Папка «Классы» распространяется как для iOS, так и для Android. Если я просто оставлю файлы кода в папке Classes, все будет хорошо, но если я поместим их в подпапки, я получу все типы ошибок. Я связал вложенные папки в свойствах проекта и даже добавил подпапки в файле Android.mk, но не повезло.Cocos2d-X Добавление вложенных папок в папку Classes вызывает ошибки

Я читал статьи и везде, где говорится, что вы должны держать все классы в корневой папке «Классы». Небольшие проекты, которые могут не быть проблемой, но по мере того, как проект становится все больше, он станет кошмаром, который должен всегда запускаться через одну папку, полную всех файлов кода.

Может кто-нибудь посоветует, если есть способ организовать файлы .h/.cpp в подпапки в проекте Cocos2D-X.

+0

Вы должны опубликовать свои ошибки на примере своей структуры каталогов. Одна вещь, которая приходит на ум, заключается в том, что XCode очень мягкий с путями, но в других средах не так много, поэтому, если вы включаете файлы из других каталогов, вам может понадобиться #include "../othersubdir/header.h" или #include "подкаталог/header.h". –

ответ

1

Если вы добавляете подпапки, вы также должны добавить их в директивы #include.

Например, если ваш каталог выглядит так:

+ Classes/ 
| + HomeScreen/ 
| | - HomeScreen.cpp 
| | - HomeScreen.h 
| + GameScreen/ 
| | - GameScreen.cpp 
| | - HomeScreen.h 

Ваш #include s должен выглядеть следующим образом:

#include "HomeScreen/HomeScreen.h" 
#include "GameScreen/GameScreen.h" 

Конечно, не зная фактические ошибки, мы не можем обеспечить определенное решение. Это всего лишь одна из самых распространенных ошибок, которые я видел.

1

XCode может автоматически добавлять такие подпапки, чтобы включить пути поиска. Но для android вам следует обновить Android.mk вручную (ОК, мы сделали это путем автоматического разбора * .xcodeproj и создания Android.mk, но это немного сложное решение).

LOCAL_C_INCLUDES := \ 
$(LOCAL_PATH)/../ \ 
$(LOCAL_PATH)/../GameScreen \ 
$(LOCAL_PATH)/../HomeScreen 
0

правой кнопкой мыши папку классов в Xcode и добавить новую группу, а затем перетащить заголовки/код в него, что вы хотите организовать вместо того чтобы создавать вложенные папки за пределами Xcode и перетащить/сбросив их в классы папка.

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