Eclipse ADT "undefined reference to (custom class)",但在 Xcode 中工作正常(使用 Cocos2dx)
Eclipse ADT "undefined reference to (custom class)", but works fine in Xcode (using Cocos2dx)
我有一个项目,它在Xcode中功能齐全,但在Eclipse ADT中无法编译。我过去曾成功编译并运行过android应用程序,但这是我第一次创建自定义类。复制问题:
我创建了一个新项目,然后添加以下2个文件:
//Enemy.cpp
#include "Enemy.h"
USING_NS_CC;
bool Enemy::init()
{
if(!Layer::init())
return false;
return true;
}
//Enemy.h
#ifndef __ColorMirror__Enemy__
#define __ColorMirror__Enemy__
#include <iostream>
#include "cocos2d.h"
USING_NS_CC;
class Enemy : public cocos2d::Layer{
public:
CREATE_FUNC(Enemy);
virtual bool init();
};
#endif
我可以在Eclipse的类列表中看到它们。
然后我在HelloWorldScene.cpp中创建了一个新的敌人,如下所示:
Enemy *newEnemy = Enemy::create();
这在Xcode中按预期编译和运行,但当我运行build_native.py时,我会收到以下错误:
jni/../../Classes/Enemy.h:19: error: undefined reference to 'Enemy::init()'
jni/../../Classes/Enemy.h:19: error: undefined reference to 'vtable for Enemy'
正在签入jni/..//类文件,我能够找到Enemy.h和Enemy.cpp.
我在Eclipse的其他版本中看到了一些关于修复的解释,以及这是一个链接器错误的建议,但我还没有弄清楚如何在ADT中修复它。
谢谢!
所以我不完全确定这些步骤中的哪一个解决了问题,很可能是多个问题,但我所做的是:
1) 将Enemy.cpp添加到Android.mk中如下:
Browse to game folder /proj.android/jni and open Android.mk
Open with TextEdit
Below the AppDelegate.cpp in LOCAL_SRC_FILES: added this:
../../Classes/Enemy.cpp
Save
(还是没用,所以我把它拿了出来)
2) 更改了Eclipse的工作区(在打开Eclipse时指定)并删除了旧的工作区
3) 下载并设置最新的ADT包(Eclipse JUNO)
4) 将Cocos2d-x从3.1 升级到3.2
(仍然不起作用)
5) 将Enemy.cpp添加到Android.mk再次
完成所有这些步骤后,一切都很好,并且像以前一样编译。
感谢Wez Sie Tato确认Enemy.cpp确实需要添加到Android.mk中……根据我在其他地方看到的一些评论,我的ADT包可能以某种方式损坏了,同时在Android.mk中没有正确的行
相关文章:
- QSqlquery prepare()和bindvalue()不工作
- 导入库可以跨dll版本工作吗
- 以螺旋方式打印矩阵的程序.(工作不好)
- 适用于 macOS 的 Xcode 应用程序。这就是我设置从USB麦克风输入获取音频的方式。一年前工作,现在没有了。为什么
- 在 Xcode 中工作的 CMake 中启用地址清理器的正确方法是什么
- 我在 Xcode 中的 C++ 代码无法正常工作
- 我怎样才能让 imread 在 Xcode 中工作
- SOIL_load_OGL_texture返回NULL,可能是工作目录问题(XCode 6)
- libcurl 不会工作 xcode
- wstring.size()在xcode或visual c++中的工作方式不同
- 用Xcode 3.2.6构建10.7 Lion应用程序-它们能工作吗
- Eclipse ADT "undefined reference to (custom class)",但在 Xcode 中工作正常(使用 Cocos2dx)
- 从终端编译框架(cppunit, boost, ++)以与Xcode 4.6一起工作
- 修改默认/工作目录Xcode 3.2.6
- 哪些实时c++音频库与Xcode 4一起工作
- GCC 4.2.2中的编译错误.但在Xcode 6.4中工作
- c++程序在命令行上工作,但在Xcode上失败
- 从txt文件中读取数据,在Visual Studio中工作,但在Xcode中失败
- 我如何得到Xcode 4.1代码自动完成工作
- 为什么min()在Xcode中工作,而不是max()