3.0beta 新建的项目。build_native.py编译出错

E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
AtlasNode.cpp:162: error: undefined reference to ‘cocos2d::QuadCommand::init(int
, int, unsigned int, cocos2d::GLProgram*, cocos2d::BlendFunc, cocos2d::V3F_C4B_T
2F_Quad*, long, kmMat4 const&)’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
AtlasNode.cpp:164: error: undefined reference to ‘cocos2d::Renderer::addCommand(
cocos2d::RenderCommand*)’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
AtlasNode.cpp:58: error: undefined reference to ‘cocos2d::QuadCommand::QuadComma
nd()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
AtlasNode.cpp:62: error: undefined reference to ‘cocos2d::QuadCommand::~QuadComm
and()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
ClippingNode.cpp:71: error: undefined reference to ‘cocos2d::GroupCommand::Group
Command()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
ClippingNode.cpp:71: error: undefined reference to ‘cocos2d::CustomCommand::Cust
omCommand()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
ClippingNode.cpp:71: error: undefined reference to ‘cocos2d::CustomCommand::Cust
omCommand()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
ClippingNode.cpp:71: error: undefined reference to ‘cocos2d::CustomCommand::Cust
omCommand()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
ClippingNode.cpp:212: error: undefined reference to ‘cocos2d::GroupCommand::init
(int, int)’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
ClippingNode.cpp:213: error: undefined reference to ‘cocos2d::Renderer::addComma
nd(cocos2d::RenderCommand*)’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
ClippingNode.cpp:215: error: undefined reference to ‘cocos2d::Renderer::pushGrou
p(int)’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
ClippingNode.cpp:217: error: undefined reference to ‘cocos2d::CustomCommand::ini
t(int, int)’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
ClippingNode.cpp:219: error: undefined reference to ‘cocos2d::Renderer::addComma
nd(cocos2d::RenderCommand*)’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
ClippingNode.cpp:240: error: undefined reference to ‘cocos2d::CustomCommand::ini
t(int, int)’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
ClippingNode.cpp:242: error: undefined reference to ‘cocos2d::Renderer::addComma
nd(cocos2d::RenderCommand*)’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
ClippingNode.cpp:270: error: undefined reference to ‘cocos2d::CustomCommand::ini
t(int, int)’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
ClippingNode.cpp:274: error: undefined reference to ‘cocos2d::Renderer::popGroup
()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
ClippingNode.cpp:76: error: undefined reference to ‘cocos2d::CustomCommand::~Cus
tomCommand()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
ClippingNode.cpp:76: error: undefined reference to ‘cocos2d::CustomCommand::~Cus
tomCommand()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
ClippingNode.cpp:76: error: undefined reference to ‘cocos2d::CustomCommand::~Cus
tomCommand()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
ClippingNode.cpp:76: error: undefined reference to ‘cocos2d::GroupCommand::~Grou
pCommand()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
Director.cpp:295: error: undefined reference to ‘cocos2d::Frustum::setupFromMatr
ix(kmMat4 const&, kmMat4 const&)’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
Director.cpp:316: error: undefined reference to ‘cocos2d::Renderer::render()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
Director.cpp:397: error: undefined reference to 'cocos2d::Renderer::initGLView()

E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
Director.cpp:754: error: undefined reference to ‘cocos2d::Frustum::~Frustum()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
Director.cpp:194: error: undefined reference to ‘cocos2d::Renderer::~Renderer()’

E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
Director.cpp:142: error: undefined reference to ‘cocos2d::Frustum::Frustum()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
Director.cpp:167: error: undefined reference to ‘cocos2d::Renderer::Renderer()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
DrawNode.cpp:244: error: undefined reference to ‘cocos2d::CustomCommand::init(in
t, int)’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
DrawNode.cpp:110: error: undefined reference to ‘cocos2d::CustomCommand::CustomC
ommand()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
DrawNode.cpp:115: error: undefined reference to ‘cocos2d::CustomCommand::~Custom
Command()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
Font.cpp:146: error: undefined reference to ‘computegradient’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
Font.cpp:147: error: undefined reference to ‘edtaa3’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
Font.cpp:155: error: undefined reference to ‘computegradient’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
Font.cpp:156: error: undefined reference to ‘edtaa3’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
NodeGrid.cpp:51: error: undefined reference to ‘cocos2d::GroupCommand::GroupComm
and()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
NodeGrid.cpp:95: error: undefined reference to ‘cocos2d::GroupCommand::init(int,
int)’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
NodeGrid.cpp:97: error: undefined reference to ‘cocos2d::Renderer::pushGroup(int
)’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
NodeGrid.cpp:159: error: undefined reference to ‘cocos2d::Renderer::popGroup()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
NodeGrid.cpp:63: error: undefined reference to ‘cocos2d::GroupCommand::~GroupCom
mand()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
ParticleBatchNode.cpp:403: error: undefined reference to ‘cocos2d::QuadCommand::
init(int, int, unsigned int, cocos2d::GLProgram*, cocos2d::BlendFunc, cocos2d::V
3F_C4B_T2F_Quad*, long, kmMat4 const&)’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
ParticleBatchNode.cpp:52: error: undefined reference to ‘cocos2d::QuadCommand::Q
uadCommand()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
ParticleBatchNode.cpp:57: error: undefined reference to ‘cocos2d::QuadCommand::~
QuadCommand()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
ParticleSystemQuad.cpp:442: error: undefined reference to ‘cocos2d::QuadCommand:
:init(int, int, unsigned int, cocos2d::GLProgram*, cocos2d::BlendFunc, cocos2d::
V3F_C4B_T2F_Quad*, long, kmMat4 const&)’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
ParticleSystemQuad.cpp:91: error: undefined reference to ‘cocos2d::QuadCommand::
QuadCommand()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
ParticleSystemQuad.cpp:96: error: undefined reference to ‘cocos2d::QuadCommand::
~QuadCommand()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
RenderTexture.cpp:66: error: undefined reference to ‘cocos2d::GroupCommand::Grou
pCommand()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
RenderTexture.cpp:651: error: undefined reference to ‘cocos2d::GroupCommand::ini
t(int, int)’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
RenderTexture.cpp:655: error: undefined reference to ‘cocos2d::Renderer::pushGro
up(int)’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
RenderTexture.cpp:670: error: undefined reference to ‘cocos2d::Renderer::popGrou
p()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
RenderTexture.cpp:79: error: undefined reference to ‘cocos2d::GroupCommand::~Gro
upCommand()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
Sprite.cpp:675: error: undefined reference to ‘cocos2d::QuadCommand::init(int, i
nt, unsigned int, cocos2d::GLProgram*, cocos2d::BlendFunc, cocos2d::V3F_C4B_T2F_
Quad*, long, kmMat4 const&)’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
Sprite.cpp:280: error: undefined reference to ‘cocos2d::QuadCommand::QuadCommand
()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
Sprite.cpp:697: error: undefined reference to ‘cocos2d::AABB::AABB(kmVec3 const&
, kmVec3 const&)’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
Sprite.cpp:699: error: undefined reference to ‘cocos2d::AABB::expand(kmVec3 cons
t&)’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
Sprite.cpp:701: error: undefined reference to ‘cocos2d::AABB::expand(kmVec3 cons
t&)’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
Sprite.cpp:703: error: undefined reference to ‘cocos2d::AABB::expand(kmVec3 cons
t&)’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
Sprite.cpp:705: error: undefined reference to ‘cocos2d::Frustum::intersectAABB(c
ocos2d::AABB const&) const’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
Sprite.cpp:705: error: undefined reference to ‘cocos2d::AABB::~AABB()’
E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android…/cocos2d/cocos/2d/CC
Sprite.cpp:284: error: undefined reference to ‘cocos2d::QuadCommand::~QuadComman
d()’
collect2.exe: error: ld returned 1 exit status
make.exe: *** Error 1
make.exe: Leaving directory `E:/c++/cocos2d-x3beta/beta/projects/testGame/proj.a
ndroid’
Traceback (most recent call last):
File “E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android\build_native.p
y”, line 147, in
build(opts.ndk_build_param,opts.android_platform,opts.build_mode)
File “E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android\build_native.p
y”, line 134, in build
do_build(cocos_root, ndk_root, app_android_root,ndk_build_param,sdk_root,and
roid_platform,build_mode)
File “E:\c++\cocos2d-x3beta\beta\projects\testGame\proj.android\build_native.p
y”, line 70, in do_build
raise Exception(“Build dynamic library for project " + app_android_root +
" ] fails!”)
Exception: Build dynamic library for project E:\c++\cocos2d-x3beta\beta\projec
ts\testGame\proj.android ] fails!

Python27
jdk1.7.0_45
android-ndk-r9c
这些要配置的版本

你好 搂主 我装了Python ,android-ndk-r9b, 设置了环境变量 我用vs编译新项目 然后就可以执行项目中的 build_native.py 生成apk吗 还要其他的设置吗, 这问题困扰我很久了, 谢谢

你好.3.0beta是有BUG.之前下载的编译不了.
不过现在3.0beta2可以正常编译了
可以参考这个,http://www.cocoachina.com/bbs/read.php?tid=183116

build_native.py 这个只是生成库
要生成apk
需要导入eclipse
只要按照那个贴子的设置.就能成功.
亲测

— Begin quote from ____

引用第1楼zwpmain于2014-01-23 14:36发表的 :
Python27
jdk1.7.0_45
android-ndk-r9c
这些要配置的版本 http://www.cocoachina.com/bbs/job.php?action=topost&tid=182285&pid=879849

— End quote

版本最好是这个吗

这个我也不知道.
除Python27,其它的我全是点那个贴子给的地址下载的

搂主你好 你用的是 32 位的 还是 64位的 我按照他步骤做下来 做到 第 5 步 5.编译android 就出错了 我打算系统重装 重新按着这步骤走一边

这个跟多少位没有关系吧,
下载对应的32,与 64位版本,都是可以的
我公司用的是64位的,
但是我家里32位的机子也是可以编译通过的呀

太感谢了, 还真是我原来系统太乱了, 新的系统很顺利 谢谢

楼主 你好
我添加了cocos2dx中的gui项目到vs中
主要是添加cocos2dx的按钮功能
vs里运行成功了 , 但是 build_native.py编译的时候 说找不到"CocosGUI.h"。
如何让build_native.py编译的时候找到该项目

gui项目里也有个Android.mk 不过我不知道怎么用

你的问题出现在undefined reference to
就是说你的CPP文件没有编译也没有链接
你要把所有的cpp文件都加在Android.mk里
就在项目的proj.android/jin文件夹里,如果用eclipse就在项目下面可以看到jni文件夹,进去先中改了就OK了
在这个下面
hellocpp/main.cpp
…/…/Classes/AppDelegate.cpp
…/…/Classes/HelloWorldScene.cpp
跟上你自己的所有的cpp,除了最后一行前面每行都以\结束,\前可加也可不加空格

假如你在vs添加了${YOUR_PROJECT_HOME}\cocos2d\cocos\gui项目,则你需要在${YOUR_PROJECT_HOME}\proj.android\jni下的Android.mk作修改
LOCAL_WHOLE_STATIC_LIBRARIES += gui_static //gui_static应该是可以自定义的
(call import-module,gui) //相对于{YOUR_PROJECT_HOME}\cocos2d\cocos的文件夹
添加位置你打开Anrdoid.mk后看文件最后的内容应该可以猜出来

这个应该是cocos_gui_static,在gui/Android.mk中定义了。不过这个我都加了,还是在android中不能编译成功,使用的是cocos2d-x 3.0 beta2。

可以看我的帖子
http://www.cocoachina.com/bbs/read.php?tid=187874

这个编译时要在jni/android.mk下添加引入库
你可以参照下这个试试http://www.melove.net/lzan13/cocos2d-x-library-android-mk-773.html

raise Exception(“Build dynamic library for project " + app_android_root +
" ] fails!”)
Exception: Build dynamic library for project E:\Project\YOUYOU\MyCppGame\proj.
android ] fails!
这是什么错误???以前就可以运行 现在不能?