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)

    问题解决,不妨一试!

  • 相关阅读:
    bzoj 4911: [Sdoi2017]切树游戏
    bzoj 2654: tree
    bzoj 3240: [Noi2013]矩阵游戏
    有标号的DAG计数 III
    有标号的DAG计数 II
    bzoj 3512: DZY Loves Math IV
    bzoj 4480: [Jsoi2013]快乐的jyy
    bzoj 5323: [Jxoi2018]游戏
    codeforces412A
    7.6 T1 深度优先搜索(dfs)
  • 原文地址:https://www.cnblogs.com/MakeView660/p/13042589.html
Copyright © 2011-2022 走看看