发布版本会导致简单的protobuf代码失败

gui*_*nny 0 c++ release protocol-buffers

我有以下单元测试代码,它基本上通过序列化和反序列化来复制对象:

FloatMat mat2;                                  
assert(mat2.ParseFromString(mat.SerializeAsString()));      

cout << mat.vec_size() << "\n";                             
cout << mat2.vec_size() << "\n";                            
Run Code Online (Sandbox Code Playgroud)

使用cmake调试模式构建时,它会按预期方式给出:

2
2
Run Code Online (Sandbox Code Playgroud)

但是当使用cmake release模式构建时,它会给出:

2
0
Run Code Online (Sandbox Code Playgroud)

我对发布模式的构建不太熟悉,请帮忙!谢谢!

Shm*_*Cat 7

既然你填充mat2assert宏(其被仅在调试版本评估)