protobuf使用遇到的坑
在这里具体的使用我不写了,可以参考下面接个连接,我只记录自己遇到的问题。
https://www.cnblogs.com/autyinjing/p/6495103.html(此博客很详细,不过最好不要下载博客中给的源码,最好下载2版本,介绍看下面)
源码下载连接:https://sourceforge.net/projects/protobuf/ 可以下载2.6的版本,已经试过,没问题。
接下来避雷区
1.不要用3版本,因为在与c++代码一块编译时出现的错误比代码还多,具体原因我还不知道,后来还了2版本就没问题啦,编译步骤可以参考上面的博客。
2.编译完成后命令、头文件等分别在/usr/local/bin 、/usr/local/include 、/usr/local/lib 中
3.这时在和c++文件编译链接的时候没有报错了,但是在执行的时候出现找不到动态库的错误,如下图:
解决办法:执行命令export LD_LIBRARY_PATH=/usr/local/lib到此就可以正常执行了,不过export只是临时测试,新的终端或者其同重启都会失效,要想长期有效,可以修改如下变量
打开~/.bashrc 或者/etc/bashrc文件,在最后加入export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib即可
4.文件编译命令
4.1 .proto文件的编译
protoc -I=/home/edan/test/protobuf/ --cpp_out=/home/edan/soft/protobuf-2.6.0 /home/edan/test/protobuf/addressbook.proto
-I=“.proto文件存放的路径”
-cpp_out= “输出的cpp文件存放的路径”
“.proto的源码路径”
更新:
因项目需要,必须用3版本的protobuf,于是又卸载重新安装,安装的3.6.1的版本是可以用的,只是protobuf安装后需要将path路径,库所在路径,在/etc/profile中进行添加,并重启系统,然后安装protobuf-c,否则会报错,如果出现没有找到protobuf的头文件,那是配置的问题,在/etc/profile中添加"export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/ "
protobuf-c安装完毕后同protobuf加入路径,并重启系统
///////etc/profile需要添加的代码
////protobuf的配置路径
export LD_LIBRARY_PATH=/usr/lib export PATH=$PATH:/usr/local/protobuf/bin/
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/protobuf/include/
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/protobuf/include export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/ //protobuf-c的配置路径
export PATH=$PATH:/usr/local/protobuf-c/bin/
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/protobuf-c/include/
protobuf使用遇到的坑的更多相关文章
- 使用TensorFlow的卷积神经网络识别自己的单个手写数字,填坑总结
折腾了几天,爬了大大小小若干的坑,特记录如下.代码在最后面. 环境: Python3.6.4 + TensorFlow 1.5.1 + Win7 64位 + I5 3570 CPU 方法: 先用MNI ...
- Protocol Buffers 在前端项目中的使用
前言: 公司后端使用的是go语言,想尝试用pb和前端进行交互,于是便有了这一次尝试,共计花了一星期时间,网上能查到的文档几乎都看了一遍,但大多都是教在node环境下如何使用,普通的js环境下很多讲述的 ...
- h5 录音 自动生成proto Js语句 UglifyJS-- 对你的js做了什么 【原码笔记】-- protobuf.js 与 Long.js 【微信开发】-- 发送模板消息 能编程与会编程 vue2入坑随记(二) -- 自定义动态组件 微信上传图片
得益于前辈的分享,做了一个h5录音的demo.效果图如下: 点击开始录音会先弹出确认框: 首次确认允许后,再次录音不需要再确认,但如果用户点击禁止,则无法录音: 点击发送 将录音内容发送到对话框中.点 ...
- protobuf坑1
或者说特性吧,没仔细看protobuf代码,也许我还理解不够. 按照陈硕大牛的这篇帖子的介绍,“它包含了程序编译的时候所链接的全部 protobuf Message types” 实际开发过程中发现必 ...
- protobuf + maven 爬坑记
疯狂创客圈 死磕Netty 亿级流量架构系列之20 [博客园 总入口 ] 本文说明 本篇是 netty+Protobuf 整合实战的 第一篇,完成一个 基于Netty + Protobuf 实战案例. ...
- 简述移动端IM开发的那些坑:架构设计、通信协议和客户端
1.前言 有过移动端开发经历的开发者都深有体会:移动端IM的开发,与传统PC端IM有很大的不同,尤其无线网络的不可靠性.移动端硬件设备资源的有限性等问题,导致一个完整的移动端IM架构设计和实现都充满着 ...
- unity的坑
http://dearymz.blog.163.com/blog/static/20565742013341916919/ 编辑器: Hierarchy窗口中是场景中的Game Object列表 Pr ...
- protobuf那些事
大家好,俺又来写博客了.......上次剧情预告说,这次会写hive的博客.......好吧,那俺就不打算写hive了.......老码农路子就是要野(本人不老,不能说得影响了找女票)......这次 ...
- Intellij IDEA中使用Protobuf的正确姿势
一..proto文件语法高亮显示 需要安装Protobuf Support插件 依次点击Intellij中的"File"-->"Settings"--&g ...
随机推荐
- Redis的安装并配置快捷启动
Redis 安装 1.下载 wget http://download.redis.io/releases/redis-5.0.5.tar.gz 2.解压 tar -zxvf redis-5.0.5.t ...
- 【Vue中的坑】Vue中的@mouseenter没反应?
在开发中想实现鼠标悬浮,然后发现事件不由被出发,查找资料,发现并不是所有情况都不能用 下面就简单的说一下如何避免这种情况 如果你的悬浮事件是在 a 标签上,那么你直接使用就会出问题,你需要加一个nat ...
- 洛谷 P1470 最长前缀 Longest Prefix
题目传送门 解题思路: 其实思路没那么难,就是题面不好理解,解释一下题面吧. 就是在下面的字符串中找一个子串,使其以某种方式被分解后,每部分都是上面所给集合中的元素. AC代码: #include&l ...
- 一条命令解决:No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android
1.找到目录D:\android\Sdk\ndk-bundle\toolchains.(根据自己的安装路径找到) 2.该路径下打开终端执行ln -sf aarch64-linux-android-4. ...
- SpringBoot之Order注解启动顺序
order的规则: order的值越小,优先级越高order如果不标注数字,默认最低优先级,因为其默认值是int最大值该注解等同于实现Ordered接口getOrder方法,并返回数字. @Reten ...
- DispatcherServlet (1)
阅读DispatcherServlet源码和<Spring解密>第二十三章 总结 之前对SpringMVC处理请求模糊不清,本周阅读了DispatcherServlet源码,对这一部分有了 ...
- spring 官方文档-片段学习——webflux-ann-controller
spring 官方文档-片段学习总结 片段所在连接:https://docs.spring.io/spring/docs/5.0.4.RELEASE/spring-framework-referenc ...
- Linux下MSSQL部署
目前主要使用的red hat系列的linux版本,CentoS 7.X,MSSQL2017 微软官方说明地址:https://docs.microsoft.com/zh-cn/sql/linux/qu ...
- 吴裕雄--天生自然JAVA SPRING框架开发学习笔记:第一个Spring程序
1. 创建项目 在 MyEclipse 中创建 Web 项目 springDemo01,将 Spring 框架所需的 JAR 包复制到项目的 lib 目录中,并将添加到类路径下,添加后的项目如图 2. ...
- CSS样式实现两个图片平分三角
<div class='pageOption'> <a href='#' class='option' > <img src='http://imgsrc.hubbles ...