请教高手cocos2dx编译的问题

robake 2013-08-01 02:29:43
先说明我使用的环境:
VS2010,cocos2dx 2.1.4,NDK r9,Cygwin64.
VS2010运行游戏正常。

Create-android-project正常,然后,进入cygwin,./build_native.sh时出现了以下错误:

make: 进入目录“/cygdrive/e/cocos2d-x-2.1.4/Balloon/proj.android”
Compile++ thumb : game_shared <= AppDelegate.cpp
In file included from jni/../../Classes/AppDelegate.cpp:6:0:
jni/../../Classes/main.h:8:19: fatal error: tchar.h: No such file or directory
compilation terminated.
/cygdrive/f/Android/android-ndk-r9/build/core/build-binary.mk:348: recipe for target `obj/local/armeabi/objs/game_shared/__/__/Classes/AppDelegate.o' failed
make: *** [obj/local/armeabi/objs/game_shared/__/__/Classes/AppDelegate.o] Error 1
make: 离开目录“/cygdrive/e/cocos2d-x-2.1.4/Balloon/proj.android”

经查是未找到tchar.h库,于是我将#include <tchar.h>改成了tchar.h的完整路径,仍然出现同样的错误,只不过文件改成了其他的如wchar.h等,由于里头引用的库比较多,故我直接将tchar.h等缺少的库文件拷到Classes里,错误又变成了以下的:

$ ./build_native.sh
NDK_ROOT = F:\Android\android-ndk-r9
COCOS2DX_ROOT = /cygdrive/e/cocos2d-x-2.1.4/Balloon/proj.android/../..
APP_ROOT = /cygdrive/e/cocos2d-x-2.1.4/Balloon/proj.android/..
APP_ANDROID_ROOT = /cygdrive/e/cocos2d-x-2.1.4/Balloon/proj.android
Using prebuilt externals
Android NDK: WARNING:/cygdrive/e/cocos2d-x-2.1.4/Balloon/proj.android/../../cocos2dx/Android.mk:cocos2dx_static: LOCAL_LDLIBS is always ignored for static libraries
make: 进入目录“/cygdrive/e/cocos2d-x-2.1.4/Balloon/proj.android”
Compile++ thumb : game_shared <= AppDelegate.cpp
In file included from jni/../../Classes/tchar.h:18:0,
from jni/../../Classes/main.h:8,
from jni/../../Classes/AppDelegate.cpp:6:
jni/../../Classes/crtdefs.h:44:2: error: #error ERROR: Only Win32 target supported!
In file included from jni/../../Classes/crtdefs.h:63:0,
from jni/../../Classes/tchar.h:18,
from jni/../../Classes/main.h:8,
from jni/../../Classes/AppDelegate.cpp:6:
jni/../../Classes/vadefs.h:19:2: error: #error ERROR: Only Win32 target supported!
In file included from jni/../../Classes/AppDelegate.cpp:4:0:
jni/../../Classes/Starting.h:23:7: error: extra qualification 'Starting::' on member 'StartPlay' [-fpermissive]
jni/../../Classes/Starting.h:24:7: error: extra qualification 'Starting::' on member 'StartConfig' [-fpermissive]
jni/../../Classes/Starting.h:25:7: error: extra qualification 'Starting::' on member 'PlayHelp' [-fpermissive]
In file included from jni/../../Classes/tchar.h:18:0,
from jni/../../Classes/main.h:8,
from jni/../../Classes/AppDelegate.cpp:6:
jni/../../Classes/crtdefs.h:447:24: error: conflicting declaration 'typedef short unsigned int wint_t'
F:/Android/android-ndk-r9/platforms/android-8/arch-arm/usr/include/wchar.h:53:33: error: 'wint_t' has a previous declaration as 'typedef unsigned int wint_t'
jni/../../Classes/crtdefs.h:448:24: error: conflicting declaration 'typedef short unsigned int wctype_t'
F:/Android/android-ndk-r9/platforms/android-8/arch-arm/usr/include/wchar.h:71:3: error: 'wctype_t' has a previous declaration as 'typedef enum wctype_t wctype_t'
jni/../../Classes/crtdefs.h:478:9: error: '__int64' does not name a type
jni/../../Classes/crtdefs.h:486:9: error: '__time64_t' does not name a type
jni/../../Classes/crtdefs.h:545:23: error: expected initializer before '_invalid_parameter_noinfo'
jni/../../Classes/crtdefs.h:546:20: error: expected constructor, destructor, or type conversion before '(' token
jni/../../Classes/crtdefs.h:549:19: error: expected constructor, destructor, or type conversion before '(' token
In file included from jni/../../Classes/main.h:8:0,
from jni/../../Classes/AppDelegate.cpp:6:
jni/../../Classes/tchar.h:2237:24: error: expected initializer before '__strncnt'
/cygdrive/f/Android/android-ndk-r9/build/core/build-binary.mk:348: recipe for target `obj/local/armeabi/objs/game_shared/__/__/Classes/AppDelegate.o' failed
make: *** [obj/local/armeabi/objs/game_shared/__/__/Classes/AppDelegate.o] Error 1
make: 离开目录“/cygdrive/e/cocos2d-x-2.1.4/Balloon/proj.android”



这里该如何配置?
...全文
5697 12 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
机械手学Java 2014-06-20
  • 打赏
  • 举报
回复
在Android.mk 里面加上 LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) -fpermissive #add "-fpermissiv" 大概意思就是不检查那个冒号的问题,亲测
HUAFELU 2013-11-01
  • 打赏
  • 举报
回复
楼主
请问该怎么解决呢,跪求帮助,
sakura03jc 2013-10-31
  • 打赏
  • 举报
回复
我也遇到了一样的问题,但我觉得如果按lz说的每次都要新建空的android工程来解决,那用cocos2dx的意义就不大了。。。
2234528019 2013-08-07
  • 打赏
  • 举报
回复
求QQ号,我也是这个问题。
然然然然然 2013-08-07
  • 打赏
  • 举报
回复
引用 6 楼 robake 的回复:
[quote=引用 5 楼 futurebp 的回复:] 我的环境也是 这个 VS2010,cocos2dx 2.1.4,NDK r9,Cygwin64. win7。刚安装上 测试是否验证成功的时候 出现这个问题
只要把NDK和Cygwin64配置好了,同时win7的环境变量也配置了,那么配置是能通过的。[/quote] 大哥 我新手,我也遇到和你一样的问题 ,能Q聊么
robake 2013-08-07
  • 打赏
  • 举报
回复
楼上的几位,我已经说明了,是代码的问题。 是编写的代码问题,VS2010里用的c++有些语法在cocos2dx移值到android上时不兼容,要改写法。 我的步骤是先建个空的android项目,然后用先前编写好的代码拷到android项目里,一次只拷一个cpp和其对应的.h文件,然后再编译,根据编译的提示再一点点的改,现在已经可以把游戏的部分内容移植到Android上了(已经在手机上测试成功)
robake 2013-08-03
  • 打赏
  • 举报
回复
引用 5 楼 futurebp 的回复:
我的环境也是 这个 VS2010,cocos2dx 2.1.4,NDK r9,Cygwin64. win7。刚安装上 测试是否验证成功的时候 出现这个问题
只要把NDK和Cygwin64配置好了,同时win7的环境变量也配置了,那么配置是能通过的。
futurebp 2013-08-02
  • 打赏
  • 举报
回复
怎么解决的 我的环境和你的一样
robake 2013-08-02
  • 打赏
  • 举报
回复
找到原因了,是因为调用了一些只有在Win32平台上才能执行的库,改了后就可以了。
futurebp 2013-08-02
  • 打赏
  • 举报
回复
我的环境也是 这个 VS2010,cocos2dx 2.1.4,NDK r9,Cygwin64. win7。刚安装上 测试是否验证成功的时候 出现这个问题
robake 2013-08-02
  • 打赏
  • 举报
回复
是编写的代码问题,VS2010里用的c++有些语法在cocos2dx移值到android上时不兼容,要改写法。 我的步骤是先建个空的android项目,然后用先前编写好的代码拷到android项目里,一次只拷一个cpp和其对应的.h文件,然后再编译,根据编译的提示再一点点的改,现在已经可以把游戏的部分内容移植到Android上了(已经在手机上测试成功)
水果宾士L 2013-08-01
  • 打赏
  • 举报
回复
同问啊,楼主解决出来了吗?

567

社区成员

发帖
与我相关
我的任务
社区描述
英特尔® 边缘计算,聚焦于边缘计算、AI、IoT等领域,为开发者提供丰富的开发资源、创新技术、解决方案与行业活动。
社区管理员
  • 英特尔技术社区
  • shere_lin
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧