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 文件夹内的子文件夹中。正在为 iosandroid 共享 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

您的#includes 应如下所示:

#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的飞机大战游戏开发实例(下)

处理子层 Cocos2d-x 的触摸

cocos2d-x项目(windows) 打包iOS前 运行调试基本的流程

windows下cocos2d-x工程结构讲解

关于Cocos2d-x中背景音乐和音效的添加