发布构建导致简单的 protobuf 代码失败
Posted
技术标签:
【中文标题】发布构建导致简单的 protobuf 代码失败【英文标题】:Release build causes simple protobuf code to fail 【发布时间】:2013-07-07 11:43:29 【问题描述】:我有以下单元测试代码,基本上是通过序列化和反序列化来复制一个对象:
FloatMat mat2;
assert(mat2.ParseFromString(mat.SerializeAsString()));
cout << mat.vec_size() << "\n";
cout << mat2.vec_size() << "\n";
当使用 cmake 调试模式构建时,它会按预期给出:
2
2
但是当使用 cmake 发布模式构建时,它会给出:
2
0
我对发布模式的构建不是很熟悉,请帮助!谢谢!
【问题讨论】:
确定你在构建发布时也重新生成并重建了你的protobuf代码? 【参考方案1】:由于您在assert
宏中填充了mat2
(仅在调试版本中进行评估)
【讨论】:
以上是关于发布构建导致简单的 protobuf 代码失败的主要内容,如果未能解决你的问题,请参考以下文章