Comments (35)
把它编译成.so 后者.dll
然后把它加到lua path 路径就行了
from luapb.
请问在ios或android上怎么设置路径?
pb.import(path)
from luapb.
你用什么开发?
from luapb.
我用cocos2dx 3.x开发的
from luapb.
报错的日志是怎样的?
from luapb.
[ProtoImporter] protopath:(null)
/Users/bingtian/Documents/testpbMac.app/Contents/Resources/res/pb/login.proto:-1:0:File not found.
import (/Users/bingtian/Documents/testpbMac.app/Contents/Resources/res/pb/login.proto) file descriptor error
就是import失败,protobuf的importer找不到这个文件,我是在mac开发的
from luapb.
login.proto 文件放在那里?
from luapb.
/Users/bingtian/Documents/testpbMac.app/Contents/Resources/res/pb/login.proto 你看看是不是存在这个文件
from luapb.
就是放在这的/Users/bingtian/Documents/testpbMac.app/Contents/Resources/res/pb/login.proto
是存在的,所以是挺奇怪的
from luapb.
你用相对路径试试?
from luapb.
能读成stream然后,传给protobuf吗?
from luapb.
你可以试试
我这边没有开发环境,不能重现你说的情况,不好实验。
from luapb.
你有用 addSearchPath 吗?
from luapb.
你可以打包一下你的工程 我这边试试
from luapb.
说的这个addSearchPath是cocos2dx的吗?但是这个貌似跟luapb没关联的
我有add的,我项目中的资源都是这么去用的
from luapb.
我刚刚看了protubuf源码,没有提供用stream读取的proto文件的方式,它使用DescriptorPool来统一管理的,要改的话,只能动源码了,而且也不太好入手
from luapb.
我大概想了一下
可以这样做
- 把proto文件夹 addSearchPath
- 导入login.proto 的时候,直接pb.import("login.proto")
这样应该可以了 就不用改代码了
from luapb.
我现在是这么写也是不行的
local path = cc.FileUtils:getInstance():fullPathForFilename("pb/login.proto")
pb.import(path)
其中pb的父目录是addSearchPath的
也试过这样也不行
pb.import("pb/login.proto")
但是,cocos2dx的addSearchPath跟protobuf的import没关联的呀,我觉得还是得用绝对路径才行,但是按我第一种用法也不行,我就蛋疼了
from luapb.
你用的protobuf版本是多少的,我用的是2.50的,跟这没关系吧?或者你用的protobuf打包一份给我试试?
from luapb.
cc.FileUtils:getInstance():addSearchPath("proto路径", true)
pb.import("login.proto")
from luapb.
cc.FileUtils:getInstance():addSearchPath("res/pb", true)
pb.import("login.proto")
依然报错:
[ProtoImporter] protopath:(null)
login.proto:-1:0:File not found.
import (login.proto) file descriptor error
你也是做手游的?
from luapb.
是的
我晚上搭个环境试试你的情况
说一下你的开发环境
from luapb.
现在没有环境 不好实验
from luapb.
我是在mac下开发的,用xcode6.1,cocos2dx 3.4版本
真是麻烦你了
你那边不会出现这种情况吗?
from luapb.
我断点去跟踪,终于发现为啥了,原来它不支持直接传前缀带/的路径名,我就设置了mapPath,然后就可以了。自己加了两个方法方法
void ProtoImporter::setMapPath(const std::string& filename){
sourceTree.MapPath("", filename);
}
static int pb_setMapPath(lua_State* L)
{
const char* filename = luaL_checkstring(L, 1);
sProtoImporter.setMapPath(filename);
return 0;
}
用法:
local path = cc.FileUtils:getInstance():fullPathForFilename("pb/login.proto")
local mapPath = string.sub(path,0,string.len(path)-11)
pb.setMapPath(mapPath)
pb.import("login.proto")
暂时试了ios和mac都没问题,android后面再试试看
from luapb.
请问,怎么判断某个字段没有值?
from luapb.
是指?
from luapb.
pb_get那我修改了下,加了判断
reflection->HasField(*message, field)
from luapb.
message MRoleObj
{
optional int64 rid = 1;
optional string name = 2;
optional int32 job = 3;
optional int32 sex = 4;
optional int32 level = 5;
optional int64 exp = 6;
}
现在发现一个问题,如果一个字段服务器设置0的话,那它后面的字段都客户端就获取不了值了,但如果不设置值,又一切正常,请问你遇到这种问题吗?
from luapb.
现在发现一个问题,如果一个字段服务器设置0的话,那它后面的字段都客户端就获取不了值了,但如果不设置值,又一切正常,请问你遇到这种问题吗?
不太明白 这里的意思?
from luapb.
就比如服务器设置
rid=1,name="test",job=1,sex=0,level=2,exp=5
我客户端就只解析到rid=1,name=“test”,job=1,sex,level,exp都没有值了
但如何不设置sex的话,那rid,name,job,level,exp,都能正常解析出来
说白了,就是服务器不能传0,一传0,后面的值,就解析不出来了
from luapb.
没出现过
你是怎么解析服务端发过来的数据的
是不是被截断了?
from luapb.
还真是被截断了,我是从c++这边收到数据再传给lua的,然后再进行解析的,那该如何防止被截断?
from luapb.
你用的接口是?
from luapb.
问题解决了,是c++这边的问题,跟lua没关系
from luapb.
Related Issues (15)
- attempt to index local 'msg' (a userdata value) HOT 10
- TYPE_SFIXED32 missing
- 不改代码情况下 XLua 可以用么 HOT 1
- 加载模块 luapb失败 HOT 5
- bool类型赋值失败 HOT 7
- 编译dll和so问题
- NEED LICENSE
- repeated filed,多次add有问题 HOT 16
- error in LuaPB.cc function pb_set at line 452 HOT 1
- There is no: field->type() == google::protobuf::FieldDescriptor::TYPE_MESSAGE HOT 12
- 用于安卓时,import无法读入文件
- 不支持枚举类型
- 怎么在C++ 把类传到lua中? lua 怎么使用,说是 usedata 不能使用 HOT 2
- 请问支持service吗 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from luapb.