Cocos2d-X 添加子文件夹到 Classes 文件夹会抛出错误
Posted
技术标签:
【中文标题】Cocos2d-X 添加子文件夹到 Classes 文件夹会抛出错误【英文标题】:Cocos2d-X Adding subfolders to Classes folder throws errors 【发布时间】:2013-06-06 15:14:16 【问题描述】:我正在开发一个 Cocos2D-X 项目。我正在尝试将我的代码文件组织到 Classes 文件夹内的子文件夹中。正在为 ios 和 android 共享 Classes 文件夹。如果我只是将代码文件留在 Classes 文件夹中,一切正常,但如果我将它们放入子文件夹中,我会得到所有类型的错误。我已经在我的项目属性中链接了子文件夹,甚至在 Android.mk 文件中添加了子文件夹,但没有运气。
我一直在谷歌搜索/阅读文章,到处都在说你必须将所有类保存在根“类文件夹”中。对于可能不是问题的小型项目,但随着项目变得越来越大,它将成为一场噩梦,必须始终运行一个包含所有代码文件的文件夹。
请问有没有办法将 .h/.cpp 文件组织到 Cocos2D-X 项目的子文件夹中。
【问题讨论】:
你应该用你的目录结构的例子来发布你的错误。想到的一件事是 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"
当然,在不知道实际错误的情况下,我们无法提供明确的解决方案。这只是我见过的最常见的错误之一。
【讨论】:
【参考方案2】:XCode 可以自动添加此类子文件夹以包含搜索路径。但是对于android,你应该手动更新Android.mk(好的,我们已经通过自动解析*.xcodeproj并生成Android.mk来完成了,但是这个解决方案有点复杂)。
LOCAL_C_INCLUDES := \
$(LOCAL_PATH)/../ \
$(LOCAL_PATH)/../GameScreen \
$(LOCAL_PATH)/../HomeScreen
【讨论】:
【参考方案3】:右键单击 x-code 中的 classes 文件夹并添加一个新组,然后将要组织的标题/代码拖入其中,而不是在 xcode 之外创建子文件夹并将它们拖放到 classes 文件夹中。
【讨论】:
以上是关于Cocos2d-X 添加子文件夹到 Classes 文件夹会抛出错误的主要内容,如果未能解决你的问题,请参考以下文章
如何使用友盟 Cocos2d-x 分享组件实现 Android/iOS 分享功能
基于Cocos2d-x-1.0.1的飞机大战游戏开发实例(下)