0
点赞
收藏
分享

微信扫一扫

使用protobuf_example_addressbook.proto项目时的问题:PROTOBUF_USE_DLLS


有一段时间没有用到protobuf了,长时间不用,都忘光了;所以重新弄一下addressbook.proto。没想碰到一堆老问题,一时没想起来,花了1个多小时,所以特别备注一下,提醒别再踏坑。

源码还是那两个,

D:\vsNCNN\protobuf391\examples\add_person.cc

D:\vsNCNN\protobuf391\examples\list_people.cc

然后,版本要一致,发现用官方的生成文件会有一大堆错误,我最后用了自己编译的文件。

cd  D:\vsNCNN\protobuf391_example

protoc -I=.   --cpp_out=.   addressbook.proto

cd  D:\vsNCNN\protobuf391_example\google\protobuf

protoc -I=.   --cpp_out=.   timestamp.proto

timestamp这一步不是必须的,但可以看出我把那个timestamp.proto移到addressbook.proto的相对路径下了,避免protoc找不到。

然后新建一个vs2019的工程,开始再跑一次,然后就发现一个问题:​​can not find " extend ExplicitlyConstructed< ::std::string> fixed_address_empty_string;" · Issue #2502 · protocolbuffers/protobuf · GitHub​​

error LNK2001: class google::protobuf::internal::ExplicitlyConstructed<class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > > google::protobuf::internal::fixed_address_empty_string"

看了一下,我以前编译的项目用的是DLL的方式,所以自己赶紧在项目的设置里添加了PROTOBUF_USE_DLLS这个预定义,然后问题就解决了。

本文结束。


举报

相关推荐

0 条评论