VS2017使用protobuf动态链接库的编译错误问题

最近老板给我安排了新任务,使用到ssl和protobuf与第三方系统对接。在网上找了一个json和pb数据格式互转的库,搞了很久,编译还是报错:

严重性    代码    说明    项目    文件    行    禁止显示状态
错误    LNK2001    无法解析的外部符号 "private: static enum google::protobuf::FieldDescriptor::CppType const * const google::protobuf::FieldDescriptor::kTypeToCppTypeMap" (?kTypeToCppTypeMap@FieldDescriptor@protobuf@google@@0QBW4CppType@123@B)    json2pb    C:\Users\someone\source\repos\json2pb\json2pb\json2pb.obj    1    
出现这样的问题刚开始就很头疼,源代码也不是我写的,看的我也一脸懵逼,搞一天还是解决不了。新手对这些外部库的编译和引用都不是太熟,不知道是在编译protobuf库时出的问题,还是环境没配好,库的引用路径不对,或者本身就出在编译这个json2pb的转换代码时出的问题。这事放了两天,今天再在网上找解决方法各种百度,终于有大神给出解决方案了。原来我把protobuf的源代码编译成动态库在我工程中引用,使用的protobuf的东西的那个源文件,必须定义一个宏

#define PROTOBUF_USE_DLLS

加了这行代码之后就编译过了,完美解决。

语言是c++

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值