关于c++编译protobuf时提示LNK2001 无法解析的外部符号的问题

软件发布|下载排行|最新软件

当前位置:首页IT学院IT技术

关于c++编译protobuf时提示LNK2001 无法解析的外部符号的问题

LianYueBiao   2020-12-12 我要评论
这篇文章主要介绍了关于c++编译protobuf时提示LNK2001 无法解析的外部符号的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

在所在配置完成后编译protobuf时还是提示如下

LNK2001 无法解析的外部符号 "union google::protobuf::internal::EmptyString google::protobuf::internal::fixed_address_empty_string" (?fixed_address_empty_string@internal@protobuf@google@@3TEmptyString@123@A)

真坑啊,各种操作猛如虎后结果还是不行。

vs2017里设置如下

然后查要在引用的头文件里增加 #define PROTOBUF_USE_DLLS,但是编译时会报protobuf.lib的重定义错误,于是把PROTOBUF_USE_DLLS定义放到工程的预处理器定义里就好了。这是vs2017里的做法。

Qt编辑器设置如下

在Makefile文件中定义预编译宏定义 PROTOBUF_USE_DLLS 方法如下:

CFLAGS:= -DPROTOBUF_USE_DLLS

而在qt的 .pro文件中添加方法如下:

DEFINES +=PROTOBUF_USE_DLLS

Copyright 2022 版权所有 软件发布 访问手机版

声明:所有软件和文章来自软件开发商或者作者 如有异议 请与本站联系 联系我们