谢谢分享~正好要用到!
晕,不支持 markdown 确实蛋疼
楼主有没有碰到过这种问题:A.proto里面引用B.proto里定义的消息时,用protoc-gen-lua无法解析,但把A.proto和B.proto文件合并成一个文件C.proto时,用protoc-gen-lua能解析?
https://github.com/seekagain/protoc-gen-lua/commit/c023f867224cda2a91711d841c2d60391f4487ba#
这里据说已经解决。
看了一下 解决方案和
http://blog.csdn.net/adamwu1988/article/details/30498859
差不多。
但是,我这边windows上测试 还是过不了啊? 难道是我的Lua的版本问题
我这边错误,大概找到原因了
原来 我在main.lua里写了
package.path = package.path … ‘;./protobuf/?.lua’
其他路径里也有一个 person_pb.lua
文件不多的话,手动合并两个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); 这句。