发布构建导致简单的 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 代码失败的主要内容,如果未能解决你的问题,请参考以下文章

当内容被命名时,暴露的 ItemCollections 导致构建失败

Core Data 代码生成导致构建失败

安装任何新的 Cocoapod 都会导致构建失败

有条件地调用 useQuery 会导致构建失败

象鸟构建失败

如何从 protobuf 构建 rpc?