protobuf遇坑总结

在一个vs2013解决方案下创建了三个工程文件,在其中一个工程(Foundation)中放有CtrlMessage.pb.h和ControlMessageTags的头文件。编译后出错总共68处。

错误 2 error LNK2019: 无法解析的外部符号 "void __cdecl google::protobuf::internal::VerifyVersion(int,int,char const *)" ([email protected]@[email protected]@@[email protected]),该符号在函数 "void __cdecl CtrlMsg::protobuf_AddDesc_CtrlMessage_2eproto(void)" ([email protected]@@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" ([email protected]@[email protected]@@[email protected][email protected]@[email protected]@[email protected]@[email protected]@[email protected]@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)" ([email protected]@@YAXXZ) referenced in function "char * __cdecl std::_Allocate<char>(unsigned int,char *)" ([email protected]@[email protected]@[email protected]) F:\StartServer2013\StartServer\Foundation.lib(CtrlMessage.pb.obj) ControlCenter

于是想到可能是由于protobuf的库文件是VS2010编译的。于是用VS2013重新打开PROTOBUF源文件重新编译2013版的protobuf,将编好的libprotobuf.lib文件复制到FOUNDATION工程目录下,依次编译foundation工程和ControlCenter工程,编译成功。总结VS2010和VS2013编译出的PROTOBUF的LIB文件不能交叉引用。

时间: 12-03

protobuf遇坑总结的相关文章

Windows安装Scrapy遇坑解决办

PS: Windows真心不适合开发.且行且珍惜.... 坑: error: Setup script exited with error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get it from http://aka.ms/vcpython27 解决方法: Microsoft Visual C++ Compiler for Python 2.7

cocos2d-x v2.2 IOS工程支持64-bit 遇坑记录

修改缘由 由于 iPhone 5S的A7 CPU   iPhone 6(A8 CPU)都已经支持64-bit ARM 架构,据说64位处理器跑64代码会提高处理能力?因此二月一新提交appstore应用必须支持64位并且六月份更新应用也必须支持. 支持64bit 关于Xcode “Build Setting” 设置 1. Xcode “Build Setting”中的Architectures参数必须设置Standard architectures (armv7,arm64). 2. Xcode

小程序遇坑

1.首先无法直接操作dom 脚本逻辑是放在JsCore中运行的,jscore是一个没有窗口对象的环境,所以无法在脚本中使用window,渲染页面只能重新获取数据渲染页面, 因此做到一些下滑加载更多数据时,需要将原本数据存下来,再将新获取数据与原数据进行去重排序(或不需要)整合渲染. 2.scroll-view 如进行聊天操作时,需将最新消息显示在底部,所以获取消息都应将scroll-top显示最底部(99999之类),但实际设置后并无反映. 测试后发现,不能将页面数据与scroll-top数据同

hdu1702(ACboy needs your help again!) 在杭电又遇坑了

点击打开链接 结题感悟: 其实吧,这题并不是很难,就是一个栈和队列的公共题,也就是按指定的方式(栈或队列)存取数据,但是为什么我自己写的栈和队列就是不能再杭电ac(一直wa啊),而用java包中的栈和队列就秒过了,问题尚未找出原因,值得思考啊.不过可以趁此学学这两个类(尽量还是自己动手写的好啊) 栈:java.util 类 Stack<E> Stack 类表示后进先出(LIFO)的对象堆栈.它通过五个操作对类 Vector 进行了扩展 ,允许将向量视为堆栈.它提供了通常的push 和 pop

android开源库发布到jcenter图文详解与填坑

相信很多人都用过开源项目,特别是android studio普及以后,使用开源库更方便简单.而如何上传开源库到jcenter供大家方便使用,虽然网上也有教程,但还是遇坑了,最后总结一下,希望可以帮助大家. [csdn地址: http://blog.csdn.net/zhangke3016/article/details/52075159] [本文简书地址: http://www.jianshu.com/p/0acf9e05b27e]同步更新 AndroidStudio是从Maven Reposi

[异常解决] ubuntu上安装JLink驱动遇到的坑及给后来者的建议

一.前言 最近将整个电脑格式化,改成了linux操作系统 希望这样能让自己在一个新的世界探索技术.提升自己吧- win上的工具用多了,就不想变化了- 继上一篇<ubuntu上安装虚拟机遇到的问题(vmware坑了,virtual-box简单安装,在virtual-box中安装精简版win7)> link:http://www.cnblogs.com/zjutlitao/p/5061917.html 遇到的在ubuntu上装虚拟机坑之后,接下来又遇到了一个新的问题—— 如何在在ubuntu上安装

web项目读取classpath路径下面的文件

首先分两大类按web容器分类 一种是普通的web项目,像用Tomcat容器,特点是压缩包随着容器的启动会解压缩成一个文件夹,项目访问的时候,实际是去访问文件夹,而不是jar或者war包. 这种的无论你是用获取路径的方法this.getClass().getResource("/")+fileName 获取流的方法this.getClass().getResourceAsStream(failName); import org.springframework.util.ResourceU

Nginx+uwsgi+web.py配置

遇坑的同鞋可以留意一下 操作系统:Centos7 准备文件:Python-2.7.13.tgz下载地址:https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgznginx-1.12.0.tar.gz下载地址:http://nginx.org/download/nginx-1.12.0.tar.gzuwsgi-2.0.15.tar.gz下载地址:https://projects.unbit.it/downloads/uwsgi-2.0.1

React Native环境配置之Windows版本搭建

接近年底了,回想这一年都做了啥,学习了啥,然后突然发现,这一年买了不少书,看是看了,就没有完整看完的.悲催.然后,最近项目也不是很紧了,所以抽空学习了H5.自学啃书还是很无趣的,虽然Head First Html5 Programming(中文版)这本书讲的很有意思,但是学习了大半本就想自己动手练练,所以得找个框架玩玩.另外之前也就听说过React Native很火,火了半个地球了,而且它号称"Learn once,write anywhere"这句话在移动开发猿眼里意味着什么呢,我不