Cocos2dx 3.0 移植安卓编译错误 extra qualification

创建了个工程,往HelloWorldScene.h添加了几个函数

bool HelloWorld::onTouchBegan(cocos2d::Touch* touch, cocos2d::Event* event);
void HelloWorld::onTouchMoved(cocos2d::Touch* touch, cocos2d::Event* event);
void HelloWorld::onTouchEnded(cocos2d::Touch* touch, cocos2d::Event* event);
```

win32 project编译没有问题,但运行proj.android/build_native.py 的时候却会报错,网上查了下,extra qualification报错是因为gcc高版本不接受cocos2d::Touch这样的语法(如果去掉cocos2d:: 则在win32下无法编译通过!

求解 ~~~~ >_< ~~~~

-----------------------------Error Log的分割线-----------------------------

The Selected NDK toolchain version was 4.8 !

Android NDK: WARNING: APP_PLATFORM android-19 is larger than android:minSdkVersi

on 9 in ./AndroidManifest.xml

Android NDK: WARNING:D:projectworkspaceTri01Tri02proj.android../cocos2d/co

cos/2d/Android.mk:cocos2dx_static: LOCAL_LDLIBS is always ignored for static lib

raries

Android NDK: WARNING:D:projectworkspaceTri01Tri02proj.android../cocos2d/co

cos/2d/platform/android/Android.mk:cocos2dxandroid_static: LOCAL_LDLIBS is alway

s ignored for static libraries

make.exe: Entering directory `D:/project/workspace/Tri01/Tri02/proj.android'

Compile++ thumb: cocos2dcpp_shared <= AppDelegate.cpp

Compile++ thumb: cocos2dcpp_shared <= HelloWorldScene.cpp

Compile++ thumb: cocos2dx_static <= CCEvent.cpp

Compile++ thumb: cocos2dx_static <= CCEventAcceleration.cpp

Compile++ thumb: cocos2dx_static <= CCEventCustom.cpp

Compile++ thumb: cocos2dx_static <= CCEventDispatcher.cpp

Compile++ thumb: cocos2dx_static <= CCEventKeyboard.cpp

In file included from jni/../../Classes/AppDelegate.cpp:2:0:

jni/../../Classes/HelloWorldScene.h:13:10: error: extra qualification 'HelloWorl

d::' on member 'onTouchBegan' -fpermissive]

bool HelloWorld::onTouchBegan(cocos2d::Touch* touch, cocos2d::Event* event)

;

^

jni/../../Classes/HelloWorldScene.h:14:10: error: extra qualification 'HelloWorl

d::' on member 'onTouchMoved' -fpermissive]

void HelloWorld::onTouchMoved(cocos2d::Touch* touch, cocos2d::Event* event)

;

^

jni/../../Classes/HelloWorldScene.h:15:10: error: extra qualification 'HelloWorl

d::' on member 'onTouchEnded' -fpermissive]

void HelloWorld::onTouchEnded(cocos2d::Touch* touch, cocos2d::Event* event)

;

^

同问啊,同样遇到了这样的问题

3.2里面已经没这个问题了,换用3.2试试

我用的也是3.2,出现的问题 差不多

jni/…/…/Classes/AppDelegate.cpp:33: error: undefined reference to Start::crea
teScene()

clang++.exe: error: linker command failed with exit code 1 (use -v to see invoca
tion)
make.exe: *** Error 1
make.exe: Leaving directory `E:/0000vsgo/projects/Ladybug3/proj.android*
Error running command, return code: 2

这个解决不了

又出新问题了

问题名称

点击X号,出现如下错误解释undefined reference to 'aboutScene::createScene()',

可是明明已经定义了

你先用VS工程,开发编译好win32程序然后再编译移植到Android。用eclipse调试太蛋疼了,应该是没问题的。

我来回答吧。。。你的.h文件中对于函数的定义是 void Class::Function(); 这样不行,应该换成 void Function(); 就OK了