zoukankan      html  css  js  c++  java
  • 更新protobuf版本后,出现google::protobuf::Any LNK2001等类似错误

    项目之前使用的protobuf版本为3.6.1,之后更新到3.12.1版本。
    使用的地方构建时出现了众多LNK2001找不到 google::protobuf::Any的链接错误:
    error LNK2001:无法解析的外部符号“const google::protobuf::Any:: 'vtable'” (??_7Any@protobuf@google@@6B@)

    出现链接问题的根源在于找不到对应数据结构或者函数的定义或实现,要么就是cpp实现文件没有加到工程解决方案中,要么就是链接的lib中没有定义。
    我这里使用的是链接lib的方式,由于google::protobuf::Any是protobuf库基本数据类型,于是猜测就是libprotobuf*.lib存在问题。

    重新编译构建protobuf,但是问题依旧存在。

    最终解决
    新版本的库由于新加入一些新的特性,所以最好阅读一下新的帮助手册。
    protobuf3.12.1需要加入预处理宏定义PROTOBUF_USE_DLLS
    如果使用CMAKE构建,可以在CMakeLists.txt中加入:ADD_DEFINTIONS(-DPROTOBUF_USE_DLLS)

    问题解决,不妨一试!

  • 相关阅读:
    K8s网络插件flannel与calico
    calico部署与网卡绑定
    脚本基本函数
    k8s迁移工具-helm
    mysql不识别中文
    日志收集系统对比
    VM虚拟机安装后的网络设置
    微擎目录结构介绍
    amazeui笔记-web组件
    jQuery 数据
  • 原文地址:https://www.cnblogs.com/MakeView660/p/13042589.html
Copyright © 2011-2022 走看看