protobuf遇坑总结
在一个vs2013解决方案下创建了三个工程文件,在其中一个工程(Foundation)中放有CtrlMessage.pb.h和ControlMessageTags的头文件。编译后出错总共68处。
错误 2 error LNK2019: 无法解析的外部符号 "void __cdecl google::protobuf::internal::VerifyVersion(int,int,char const *)" (?VerifyVersion@internal@protobuf@google@@YAXHHPBD@Z),该符号在函数 "void __cdecl CtrlMsg::protobuf_AddDesc_CtrlMessage_2eproto(void)" (?protobuf_AddDesc_CtrlMessage_2eproto@CtrlMsg@@YAXXZ) 中被引用 F:\StartServer2013\StartServer\Foundation.lib(CtrlMessage.pb.obj) ControlCenter
。
。
错误 61 error LNK2001: 无法解析的外部符号 "class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const google::protobuf::internal::kEmptyString" (?kEmptyString@internal@protobuf@google@@3V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@B) F:\StartServer2013\StartServer\Foundation.lib(CtrlMessage.pb.obj) ControlCenter
打开Foundation工程属性页,在“附加依赖项”增加protobuf库文件libprotobuf.lib,然后把以前用VS2010编译库文件复制Founddation同级目录下,Foundation工程编译通过。
然后在另一个引用Foundtion工程中,编译出错总共38处
错误 8 error LNK2038: 检测到“_MSC_VER”的不匹配项: 值“1600”不匹配值“1800”(StartServerDlg.obj 中) F:\StartServer2013\StartServer\Foundation.lib(common.obj) ControlCenter
。
。
错误 35 error LNK2038: 检测到“_MSC_VER”的不匹配项: 值“1600”不匹配值“1800”(StartServerDlg.obj 中) F:\StartServer2013\StartServer\Foundation.lib(stringprintf.obj) ControlCenter
然后ControlCenter项目的平台工具集改成vs2010,错误只有5个,
错误 1 error LNK2038: mismatch detected for '_MSC_VER': value '1800' doesn't match value '1600' in StartServerDlg.obj F:\StartServer2013\StartServer\Foundation.lib(CtrlMessage.pb.obj) ControlCenter
错误 3 error LNK2019: unresolved external symbol "__declspec(dllimport) void __cdecl std::_Xbad_alloc(void)" (__imp_?_Xbad_alloc@std@@YAXXZ) referenced in function "char * __cdecl std::_Allocate<char>(unsigned int,char *)" (??$_Allocate@D@std@@YAPADIPAD@Z) F:\StartServer2013\StartServer\Foundation.lib(CtrlMessage.pb.obj) ControlCenter
。
。
于是想到可能是由于protobuf的库文件是VS2010编译的。于是用VS2013重新打开PROTOBUF源文件重新编译2013版的protobuf,将编好的libprotobuf.lib文件复制到FOUNDATION工程目录下,依次编译foundation工程和ControlCenter工程,编译成功。总结VS2010和VS2013编译出的PROTOBUF的LIB文件不能交叉引用。
protobuf遇坑总结的更多相关文章
- redis 集群 遇坑1
redis 集群 遇坑1 redis集群需要开2个端口 一个是客户端连接端口 一个是 集群总线端口 集群总线端口 是 客户端端口 + 10000 如 客户端端口是 6380 则集群总线端口 为 163 ...
- SpringCache实战遇坑
1. SpringCache实战遇坑 1.1. pom 主要是以下两个 <dependency> <groupId>org.springframework.boot</g ...
- 浅谈Android Studio3.0更新之路(遇坑必入)
>可以参考官网设置-> 1 2 >> Fantasy_Lin_网友评论原文地址是:简书24K纯帅豆写的我也更新一下出处[删除]Fa 转自脚本之家 浅谈Android Studi ...
- Cat搭建遇坑记
1. Cat搭建遇坑记 1.1. 报错 服务端启动 Unable to get component: class com.dianping.cat.analysis.TcpSocketReceiver ...
- Windows安装Scrapy遇坑解决办
PS: Windows真心不适合开发.且行且珍惜.... 坑: error: Setup script exited with error: Microsoft Visual C++ 9.0 is r ...
- Java之戳中痛点 - (6)避免类型自动转换,例如两个整数相除得浮点数遇坑
先来看一个例子: package com.test; public class calculate { /** * 光速30万公里/秒 */ public static final int LIGHT ...
- Android组件化demo实现以及遇坑分享
首先贴出demo的github地址:GitHub - TenzLiu/TenzModuleDemo: android组件化demo 作者:TenzLiu原文链接:https://www.jianshu ...
- phalcon安装-遇坑php-config is not installed 解决方法
通过源码编译安装php环境,按照phalcon官方文档安装扩展,会遇到php-config is not installed的坑. 尝试通过下列命令可以解决: cd /opt/cphalcon-/bu ...
- unity 2d 游戏优化之路 遇坑记录
情景说明: unity 出的Android包,在目前一些主流机型跑都没有问题,但是在 小米3 这种比较老的机器上跑,报如下错误 GLSL compilation failed, no infolog ...
- [win10]遇坑指南
好多不好用的地方,现在解决的差不多了,把经验分享一下,也方便自己下一次重装 win10 时不再进坑. 1. 输入法:https://zhidao.baidu.com/question/45942172 ...
随机推荐
- k8s安装gitlab-ce
docker镜像打包 根据官方说明:gitlaby docker镜像中已经不包含邮件代理传输,需要重新打包镜像 FROM gitlab/gitlab-ce RUN apt-get update &am ...
- 【Java】取n工作日后的日期(仅排除周六周日)
import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.*; import java. ...
- 京准GPS北斗卫星时钟同步系统投运国电内蒙古晶阳能源有限公司
京准GPS北斗卫星时钟同步系统投运国电内蒙古晶阳能源有限公司 2020年1月初期,我京准科技生产研发的GPS北斗卫星时钟同步系统投运国电内蒙古晶阳能源有限公司,为该单位的能源管理系统及其他各业务子系 ...
- ubuntu测网速speedometer
下载安装speedometer sudo apt-get install speedometer 查询需要测速的网卡 ifconfig 测速 speedometer -rx enp2s0 执行效果图如 ...
- unity3D mirror网络游戏开发笔记
最近想开发一款多人在线网络游戏,使用unity3d的mirror插件可以提高开发效率,并且该插件免费. 但是由于使用插件开发效率太低,经过研究,ummorpg开发模板是居于该插件开发而来,使用它可以提 ...
- 面试:关于Zookeeper注册节点的上线和掉线
Zookeeper中有一个重要的部件Monitor(监控中心),它是Dubbo中服务治理体系中的重要一环. 监控中心在启动的时候,会通过Zookeeper的/dubbo/com.foo.BarServ ...
- git远程分支回退到某个版本
1.找到要回退的版本号(右击项目--> Git --> Show History -->选中要回退的版本-->Copy Revision Number): 2.打开idea的T ...
- 快速使用时序数据库InfluxDB
快速使用时序数据库InfluxDB InfluxDB是一款优秀的时间序列数据库,适合存储设备性能.日志.物联网传感器等带时间戳的数据. 1. InfluxDB主要特性 InfluxDB也就是TSDB, ...
- Pytorch实战学习(七):高级CNN
<PyTorch深度学习实践>完结合集_哔哩哔哩_bilibili Advanced CNN 一.GoogLeNet Inception Module:而为了减少代码的冗余,将由(卷积(C ...
- (0409) Pycharm 的设置--参数设置(运行.py文件带参数,例如argument) 比如: demo.py -prj xxx
1) https://www.cnblogs.com/yksgzlyh/p/10221960.html 点击"Run"菜单下的"Edit Configurations. ...