首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于cocos2d-x下使用lua脚本的有关问题

2013-11-29 
关于cocos2d-x下使用lua脚本的问题我的过程是这样的,我先建立了一个支持lua的cocos2d-x的项目,还没有写任

关于cocos2d-x下使用lua脚本的问题
我的过程是这样的,我先建立了一个支持lua的cocos2d-x的项目,还没有写任何的代码,然后编译,说找不到cocos-ext.h这个文件,然后包含路径以及添加链接库,然后编译通过,但是执行的时候,出现了链接错误如下:

liblua.lib(tolua_to.obj) : error LNK2001: 无法解析的外部符号 _lua_pushnumber
1>CCLuaEngine.obj : error LNK2019: 无法解析的外部符号 _lua_pushnumber,该符号在函数 "public: virtual int __thiscall cocos2d::CCLuaEngine::executeLayerTouchesEvent(class cocos2d::CCLayer *,int,class cocos2d::CCSet *)" (?executeLayerTouchesEvent@CCLuaEngine@cocos2d@@UAEHPAVCCLayer@2@HPAVCCSet@2@@Z) 中被引用
1>liblua.lib(CCLuaStack.obj) : error LNK2001: 无法解析的外部符号 _lua_pushnumber
1>liblua.lib(tolua_is.obj) : error LNK2001: 无法解析的外部符号 _lua_pushnumber
1>liblua.lib(tolua_push.obj) : error LNK2001: 无法解析的外部符号 _lua_pushnumber
1>CCLuaEngine.obj : error LNK2019: 无法解析的外部符号 _lua_pushinteger,该符号在函数 "public: virtual int __thiscall cocos2d::CCLuaEngine::executeLayerTouchesEvent(class cocos2d::CCLayer *,int,class cocos2d::CCSet *)" (?executeLayerTouchesEvent@CCLuaEngine@cocos2d@@UAEHPAVCCLayer@2@HPAVCCSet@2@@Z) 中被引用
1>tolua_fix.obj : error LNK2001: 无法解析的外部符号 _lua_pushinteger
1>liblua.lib(CCLuaStack.obj) : error LNK2001: 无法解析的外部符号 _lua_pushinteger
1>liblua.lib(tolua_event.obj) : error LNK2001: 无法解析的外部符号 _lua_createtable
1>CCLuaEngine.obj : error LNK2019: 无法解析的外部符号 _lua_createtable,该符号在函数 "public: virtual int __thiscall cocos2d::CCLuaEngine::executeLayerTouchesEvent(class cocos2d::CCLayer *,int,class cocos2d::CCSet *)" (?executeLayerTouchesEvent@CCLuaEngine@cocos2d@@UAEHPAVCCLayer@2@HPAVCCSet@2@@Z) 中被引用
1>tolua_fix.obj : error LNK2001: 无法解析的外部符号 _lua_createtable
1>liblua.lib(CCLuaStack.obj) : error LNK2001: 无法解析的外部符号 _lua_createtable
1>liblua.lib(tolua_map.obj) : error LNK2001: 无法解析的外部符号 _lua_createtable
1>CCLuaEngine.obj : error LNK2019: 无法解析的外部符号 _lua_rawseti,该符号在函数 "public: virtual int __thiscall cocos2d::CCLuaEngine::executeLayerTouchesEvent(class cocos2d::CCLayer *,int,class cocos2d::CCSet *)" (?executeLayerTouchesEvent@CCLuaEngine@cocos2d@@UAEHPAVCCLayer@2@HPAVCCSet@2@@Z) 中被引用
1>liblua.lib(CCLuaStack.obj) : error LNK2001: 无法解析的外部符号 _lua_rawseti
1>liblua.lib(tolua_to.obj) : error LNK2001: 无法解析的外部符号 _lua_tolstring
1>Cocos2dxLuaLoader.obj : error LNK2019: 无法解析的外部符号 _lua_tolstring,该符号在函数 _cocos2dx_lua_loader 中被引用
1>tolua_fix.obj : error LNK2001: 无法解析的外部符号 _lua_tolstring
1>liblua.lib(CCLuaStack.obj) : error LNK2001: 无法解析的外部符号 _lua_tolstring
1>liblua.lib(tolua_is.obj) : error LNK2001: 无法解析的外部符号 _lua_tolstring
1>Cocos2dxLuaLoader.obj : error LNK2019: 无法解析的外部符号 _luaL_checklstring,该符号在函数 _cocos2dx_lua_loader 中被引用
1>Cocos2dxLuaLoader.obj : error LNK2019: 无法解析的外部符号 _luaL_error,该符号在函数 _cocos2dx_lua_loader 中被引用
1>liblua.lib(tolua_is.obj) : error LNK2001: 无法解析的外部符号 _luaL_error
1>liblua.lib(tolua_map.obj) : error LNK2001: 无法解析的外部符号 _luaL_error
1>Cocos2dxLuaLoader.obj : error LNK2019: 无法解析的外部符号 _luaL_loadbuffer,该符号在函数 _cocos2dx_lua_loader 中被引用
1>liblua.lib(tolua_map.obj) : error LNK2001: 无法解析的外部符号 _luaL_loadbuffer
1>liblua.lib(tolua_map.obj) : error LNK2001: 无法解析的外部符号 _lua_gettop
1>liblua.lib(tolua_push.obj) : error LNK2001: 无法解析的外部符号 _lua_gettop
1>liblua.lib(tolua_to.obj) : error LNK2001: 无法解析的外部符号 _lua_gettop
1>liblua.lib(tolua_event.obj) : error LNK2001: 无法解析的外部符号 _lua_gettop
1>LuaCocos2d.obj : error LNK2019: 无法解析的外部符号 _lua_gettop,该符号在函数 "int __cdecl tolua_Cocos2d_CCAffineTransformConcat00(struct lua_State *)" (?tolua_Cocos2d_CCAffineTransformConcat00@@YAHPAUlua_State@@@Z) 中被引用
1>tolua_fix.obj : error LNK2001: 无法解析的外部符号 _lua_gettop
1>liblua.lib(CCLuaStack.obj) : error LNK2001: 无法解析的外部符号 _lua_gettop
1>liblua.lib(tolua_is.obj) : error LNK2001: 无法解析的外部符号 _lua_gettop
1>liblua.lib(tolua_event.obj) : error LNK2001: 无法解析的外部符号 _lua_touserdata
1>LuaCocos2d.obj : error LNK2019: 无法解析的外部符号 _lua_touserdata,该符号在函数 "int __cdecl tolua_get_Cocos2d_kmMat4_mat(struct lua_State *)" (?tolua_get_Cocos2d_kmMat4_mat@@YAHPAUlua_State@@@Z) 中被引用
1>tolua_fix.obj : error LNK2001: 无法解析的外部符号 _lua_touserdata
1>liblua.lib(tolua_map.obj) : error LNK2001: 无法解析的外部符号 _lua_touserdata
1>liblua.lib(tolua_to.obj) : error LNK2001: 无法解析的外部符号 _lua_touserdata
1>liblua.lib(tolua_map.obj) : error LNK2001: 无法解析的外部符号 _lua_pushstring
1>liblua.lib(tolua_push.obj) : error LNK2001: 无法解析的外部符号 _lua_pushstring
1>liblua.lib(tolua_event.obj) : error LNK2001: 无法解析的外部符号 _lua_pushstring
1>LuaCocos2d.obj : error LNK2019: 无法解析的外部符号 _lua_pushstring,该符号在函数 "int __cdecl tolua_get_Cocos2d_kmMat4_mat(struct lua_State *)" (?tolua_get_Cocos2d_kmMat4_mat@@YAHPAUlua_State@@@Z) 中被引用


1>tolua_fix.obj : error LNK2001: 无法解析的外部符号 _lua_pushstring
1>liblua.lib(CCLuaStack.obj) : error LNK2001: 无法解析的外部符号 _lua_pushstring
1>liblua.lib(tolua_is.obj) : error LNK2001: 无法解析的外部符号 _lua_pushstring
1>liblua.lib(tolua_push.obj) : error LNK2001: 无法解析的外部符号 _lua_rawget
1>liblua.lib(tolua_event.obj) : error LNK2001: 无法解析的外部符号 _lua_rawget
1>LuaCocos2d.obj : error LNK2019: 无法解析的外部符号 _lua_rawget,该符号在函数 "int __cdecl tolua_get_Cocos2d_kmMat4_mat(struct lua_State *)" (?tolua_get_Cocos2d_kmMat4_mat@@YAHPAUlua_State@@@Z) 中被引用
1>tolua_fix.obj : error LNK2001: 无法解析的外部符号 _lua_rawget
1>liblua.lib(tolua_is.obj) : error LNK2001: 无法解析的外部符号 _lua_rawget
1>liblua.lib(tolua_map.obj) : error LNK2001: 无法解析的外部符号 _lua_rawget
1>liblua.lib(tolua_push.obj) : error LNK2001: 无法解析的外部符号 _lua_settop
1>liblua.lib(tolua_to.obj) : error LNK2001: 无法解析的外部符号 _lua_settop
1>liblua.lib(tolua_event.obj) : error LNK2001: 无法解析的外部符号 _lua_settop
1>tolua_fix.obj : error LNK2019: 无法解析的外部符号 _lua_settop,该符号在函数 _toluafix_pushusertype_ccobject 中被引用
1>liblua.lib(CCLuaStack.obj) : error LNK2001: 无法解析的外部符号 _lua_se

谁能告诉我怎么解决这个问题。
[解决办法]
不如先看看别人是怎么弄的。比如这个:https://github.com/narfdotpl/lua-on-ios
[解决办法]

引用:
Quote: 引用:

不如先看看别人是怎么弄的。比如这个:https://github.com/narfdotpl/lua-on-ios

什么意思啊,看不懂,你能说说吗?

不会下载吗?用git下载过来自己编译啊!
要不下载zip包:https://github.com/narfdotpl/lua-on-ios/archive/master.zip

[解决办法]
引用:
我的过程是这样的,我先建立了一个支持lua的cocos2d-x的项目,还没有写任何的代码,然后编译,说找不到cocos-ext.h这个文件,然后包含路径以及添加链接库,然后编译通过,但是执行的时候,出现了链接错误如下:

liblua.lib(tolua_to.obj) : error LNK2001: 无法解析的外部符号 _lua_pushnumber
1>CCLuaEngine.obj : error LNK2019: 无法解析的外部符号 _lua_pushnumber,该符号在函数 "public: virtual int __thiscall cocos2d::CCLuaEngine::executeLayerTouchesEvent(class cocos2d::CCLayer *,int,class cocos2d::CCSet *)" (?executeLayerTouchesEvent@CCLuaEngine@cocos2d@@UAEHPAVCCLayer@2@HPAVCCSet@2@@Z) 中被引用
1>liblua.lib(CCLuaStack.obj) : error LNK2001: 无法解析的外部符号 _lua_pushnumber
1>liblua.lib(tolua_is.obj) : error LNK2001: 无法解析的外部符号 _lua_pushnumber
1>liblua.lib(tolua_push.obj) : error LNK2001: 无法解析的外部符号 _lua_pushnumber
1>CCLuaEngine.obj : error LNK2019: 无法解析的外部符号 _lua_pushinteger,该符号在函数 "public: virtual int __thiscall cocos2d::CCLuaEngine::executeLayerTouchesEvent(class cocos2d::CCLayer *,int,class cocos2d::CCSet *)" (?executeLayerTouchesEvent@CCLuaEngine@cocos2d@@UAEHPAVCCLayer@2@HPAVCCSet@2@@Z) 中被引用
1>tolua_fix.obj : error LNK2001: 无法解析的外部符号 _lua_pushinteger
1>liblua.lib(CCLuaStack.obj) : error LNK2001: 无法解析的外部符号 _lua_pushinteger
1>liblua.lib(tolua_event.obj) : error LNK2001: 无法解析的外部符号 _lua_createtable
1>CCLuaEngine.obj : error LNK2019: 无法解析的外部符号 _lua_createtable,该符号在函数 "public: virtual int __thiscall cocos2d::CCLuaEngine::executeLayerTouchesEvent(class cocos2d::CCLayer *,int,class cocos2d::CCSet *)" (?executeLayerTouchesEvent@CCLuaEngine@cocos2d@@UAEHPAVCCLayer@2@HPAVCCSet@2@@Z) 中被引用
1>tolua_fix.obj : error LNK2001: 无法解析的外部符号 _lua_createtable
1>liblua.lib(CCLuaStack.obj) : error LNK2001: 无法解析的外部符号 _lua_createtable
1>liblua.lib(tolua_map.obj) : error LNK2001: 无法解析的外部符号 _lua_createtable
1>CCLuaEngine.obj : error LNK2019: 无法解析的外部符号 _lua_rawseti,该符号在函数 "public: virtual int __thiscall cocos2d::CCLuaEngine::executeLayerTouchesEvent(class cocos2d::CCLayer *,int,class cocos2d::CCSet *)" (?executeLayerTouchesEvent@CCLuaEngine@cocos2d@@UAEHPAVCCLayer@2@HPAVCCSet@2@@Z) 中被引用
1>liblua.lib(CCLuaStack.obj) : error LNK2001: 无法解析的外部符号 _lua_rawseti
1>liblua.lib(tolua_to.obj) : error LNK2001: 无法解析的外部符号 _lua_tolstring
1>Cocos2dxLuaLoader.obj : error LNK2019: 无法解析的外部符号 _lua_tolstring,该符号在函数 _cocos2dx_lua_loader 中被引用
1>tolua_fix.obj : error LNK2001: 无法解析的外部符号 _lua_tolstring
1>liblua.lib(CCLuaStack.obj) : error LNK2001: 无法解析的外部符号 _lua_tolstring
1>liblua.lib(tolua_is.obj) : error LNK2001: 无法解析的外部符号 _lua_tolstring
1>Cocos2dxLuaLoader.obj : error LNK2019: 无法解析的外部符号 _luaL_checklstring,该符号在函数 _cocos2dx_lua_loader 中被引用


1>Cocos2dxLuaLoader.obj : error LNK2019: 无法解析的外部符号 _luaL_error,该符号在函数 _cocos2dx_lua_loader 中被引用
1>liblua.lib(tolua_is.obj) : error LNK2001: 无法解析的外部符号 _luaL_error
1>liblua.lib(tolua_map.obj) : error LNK2001: 无法解析的外部符号 _luaL_error
1>Cocos2dxLuaLoader.obj : error LNK2019: 无法解析的外部符号 _luaL_loadbuffer,该符号在函数 _cocos2dx_lua_loader 中被引用
1>liblua.lib(tolua_map.obj) : error LNK2001: 无法解析的外部符号 _luaL_loadbuffer
1>liblua.lib(tolua_map.obj) : error LNK2001: 无法解析的外部符号 _lua_gettop
1>liblua.lib(tolua_push.obj) : error LNK2001: 无法解析的外部符号 _lua_gettop
1>liblua.lib(tolua_to.obj) : error LNK2001: 无法解析的外部符号 _lua_gettop
1>liblua.lib(tolua_event.obj) : error LNK2001: 无法解析的外部符号 _lua_gettop
1>LuaCocos2d.obj : error LNK2019: 无法解析的外部符号 _lua_gettop,该符号在函数 "int __cdecl tolua_Cocos2d_CCAffineTransformConcat00(struct lua_State *)" (?tolua_Cocos2d_CCAffineTransformConcat00@@YAHPAUlua_State@@@Z) 中被引用
1>tolua_fix.obj : error LNK2001: 无法解析的外部符号 _lua_gettop
1>liblua.lib(CCLuaStack.obj) : error LNK2001: 无法解析的外部符号 _lua_gettop
1>liblua.lib(tolua_is.obj) : error LNK2001: 无法解析的外部符号 _lua_gettop
1>liblua.lib(tolua_event.obj) : error LNK2001: 无法解析的外部符号 _lua_touserdata
1>LuaCocos2d.obj : error LNK2019: 无法解析的外部符号 _lua_touserdata,该符号在函数 "int __cdecl tolua_get_Cocos2d_kmMat4_mat(struct lua_State *)" (?tolua_get_Cocos2d_kmMat4_mat@@YAHPAUlua_State@@@Z) 中被引用
1>tolua_fix.obj : error LNK2001: 无法解析的外部符号 _lua_touserdata
1>liblua.lib(tolua_map.obj) : error LNK2001: 无法解析的外部符号 _lua_touserdata
1>liblua.lib(tolua_to.obj) : error LNK2001: 无法解析的外部符号 _lua_touserdata
1>liblua.lib(tolua_map.obj) : error LNK2001: 无法解析的外部符号 _lua_pushstring
1>liblua.lib(tolua_push.obj) : error LNK2001: 无法解析的外部符号 _lua_pushstring
1>liblua.lib(tolua_event.obj) : error LNK2001: 无法解析的外部符号 _lua_pushstring
1>LuaCocos2d.obj : error LNK2019: 无法解析的外部符号 _lua_pushstring,该符号在函数 "int __cdecl tolua_get_Cocos2d_kmMat4_mat(struct lua_State *)" (?tolua_get_Cocos2d_kmMat4_mat@@YAHPAUlua_State@@@Z) 中被引用
1>tolua_fix.obj : error LNK2001: 无法解析的外部符号 _lua_pushstring
1>liblua.lib(CCLuaStack.obj) : error LNK2001: 无法解析的外部符号 _lua_pushstring
1>liblua.lib(tolua_is.obj) : error LNK2001: 无法解析的外部符号 _lua_pushstring
1>liblua.lib(tolua_push.obj) : error LNK2001: 无法解析的外部符号 _lua_rawget
1>liblua.lib(tolua_event.obj) : error LNK2001: 无法解析的外部符号 _lua_rawget
1>LuaCocos2d.obj : error LNK2019: 无法解析的外部符号 _lua_rawget,该符号在函数 "int __cdecl tolua_get_Cocos2d_kmMat4_mat(struct lua_State *)" (?tolua_get_Cocos2d_kmMat4_mat@@YAHPAUlua_State@@@Z) 中被引用
1>tolua_fix.obj : error LNK2001: 无法解析的外部符号 _lua_rawget
1>liblua.lib(tolua_is.obj) : error LNK2001: 无法解析的外部符号 _lua_rawget
1>liblua.lib(tolua_map.obj) : error LNK2001: 无法解析的外部符号 _lua_rawget
1>liblua.lib(tolua_push.obj) : error LNK2001: 无法解析的外部符号 _lua_settop
1>liblua.lib(tolua_to.obj) : error LNK2001: 无法解析的外部符号 _lua_settop
1>liblua.lib(tolua_event.obj) : error LNK2001: 无法解析的外部符号 _lua_settop
1>tolua_fix.obj : error LNK2019: 无法解析的外部符号 _lua_settop,该符号在函数 _toluafix_pushusertype_ccobject 中被引用
1>liblua.lib(CCLuaStack.obj) : error LNK2001: 无法解析的外部符号 _lua_se

谁能告诉我怎么解决这个问题。


你参考下sample 你这个问题,如果确定有链接库了的话,那么估计是头文件include的时候没有extern 'C'
[解决办法]
LZ 我也遇到了相同的问题。
[解决办法]
运行一下HelloLua试试能否正常,如果新建的项目内缺少什么,就将HelloLua内的文件拷贝过去试试
[解决办法]
确定#program comment("your lib")关于cocos2d-x下使用lua脚本的有关问题
[解决办法]

当然!你的工程下载下来的时候编译成功了没

热点排行