Quick-cocos2d-x 集成 google protobuf 方法

文件不多的话,手动合并两个proto文件也ok

楼主,有没有研究过原生cocos2d,而不是quick cocos的,开发环境是这样:win7 64 + 原生cocos2d + cocos code ide + protobuf + protoc-gen-lua的。主要是pb.c这个文件的处理,目前碰到无法找到pb.lua文件问题

支持一下。

quick-cocos2d-x/player/proj.qt,这个目录我怎么没有啊,你们的quick版本是多少?

第三部集成完成了但是说找不到pb,在 require ‘pb’的时候说找不到:
:31: module ‘pb’ not found:
no field package.preload’pb’]
no file ‘./pb.lua’
no file ‘/usr/local/share/luajit-2.0.3/pb.lua’
no file ‘/usr/local/share/lua/5.1/pb.lua’
no file ‘/usr/local/share/lua/5.1/pb/init.lua’
no file ‘/Users/admin/Documents/workproject/freedom/samples/luasocket/scripts/pb.lua’
no file ‘./protobuf/pb.lua’
no file ‘./scripts/protobuf/pb.lua’
no file ‘…/protobuf/pb.lua’
no file ‘./pb.so’
no file ‘/usr/local/lib/lua/5.1/pb.so’
no file ‘/usr/local/lib/lua/5.1/loadall.so’
no file ‘…/protobuf/pb.so’

是不是在集成.c文件之后需要重新编码 c代码?

到了第三步, require “pb” 找不到pb.lua

新人懵懂,望指点。

到了第三步, require “pb” 找不到pb.lua

新人懵懂,望指点

到了第三步, require “pb” 找不到pb.lua

新人懵懂,望指点

这个需要把pb.c 加到player工程中去。再编译player。

不是的。是因为调用了luaopen_pb(L) 后 :229: attempt to index field ‘Director’ (a nil value)

所有cocos2d-x 的原生接口都不能用了

问题找到了不知道怎么解决

你把你调用 luaopen_pb(L)地方的代码贴出来一下。

void luaopen_lua_extensions(lua_State L)
{
// load extensions
luaL_Reg
lib = luax_exts;
lua_getglobal(L, “package”);
lua_getfield(L, -1, “preload”);
for (; lib->func; lib++)
{
lua_pushcfunction(L, lib->func);
lua_setfield(L, -2, lib->name);
}
lua_pop(L, 2);

 // load extensions script
 luaopen_socket_scripts(L);
 luaopen_pb(L);   //这是加入的protobuf 扩展注册名

}

请在你加入的luaopen_pb(L); //这是加入的protobuf 扩展注册名
这一行后面加上 lua_pop(L, 2); 这句。

在luaopen_socket_scripts上面一行已经有了

你再加一行 。

void luaopen_lua_extensions(lua_State L)
{
// load extensions
luaL_Reg
lib = luax_exts;
lua_getglobal(L, “package”);
lua_getfield(L, -1, “preload”);
for (; lib->func; lib++)
{
lua_pushcfunction(L, lib->func);
lua_setfield(L, -2, lib->name);
}
lua_pop(L, 2);

 // load extensions script
 luaopen_socket_scripts(L);
 luaopen_pb(L);   //这是加入的protobuf 扩展注册名
 lua_pop(L, 2);

}

想问下你是在那个版本下做的集成pb

换云风的pb吧。