解决使用 protobuf 库过程中出现的编译问题。protobuf 和 XML,json 一样的数据结构。
问题 1
- 缺 protobuf 库,可以定义
PROTOBUF_USE_DLLS
来链接 protobuf 库。
无法解析的外部符号 "class google::protobuf::internal::ExplicitlyConstructed<class std::basic_string<char,struct std::char_traits,class std::allocator > >
- 解决方法:
DEFINES += PROTOBUF_USE_DLLS
问题 2
- std::min,std::max 与 windows.h 的 min,max 冲突了。
.pb.h:189: warning: C4003: 类函数宏的调用“min”参数不足
.pb.h:189: warning: C4003: 类函数宏的调用“max”参数不足
.pb.h:189: error: C2589:“(”:“::”右边的非法标记
UserInfo_STATE_UserInfo_STATE_INT_MIN_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::min(),
UserInfo_STATE_UserInfo_STATE_INT_MAX_SENTINEL_DO_NOT_USE_ = std::numeric_limits<::google::protobuf::int32>::max()
- 解决方法:
屏蔽 windows.h 的 min, max 方法
DEFINES += NOMINMAX