linux下编译protobuf
这里我介绍两种方法,一是直接ccmake配置,二是修改cmake文件下面的CMakeList.txt文件
第一种方法:配置ccmake
1、安装sudo apt-get install cmake-curses-gui,这是一个可视化的配置cmake,这种方式编译后的.so文件非常小
2、下载protobuf-cpp-3.5.0.tar.gz解压
3、cd protobuf-3.5.0
4、mkdir build
5、cd build
6、ccmake ../cmake这里会弹出一个界面,
7、Press c进行配置,配置完成弹出一个配置界面,大家根据自己的需要进行配置即可
8、配置完成再次Press c保存配置,这时会有一个Press g生成并退出
9、make -j2
10、make install
11、完成后执行protoc --version有可能会出现bash:protoc:command not found,需要把生成的protoc拷贝到/usr/bin/目录下
第二种方法修改CMakeList.txt文件
1、下载protobuf-cpp-3.5.0.tar.gz解压
2、cd protobuf-3.5.0
3、cd cmake
4、vim CMakeList.txt
5、在Options选项的最下方添加
set(CMAKE_BUILD_TYPE RELEASE)
set(CMAKE_INSTALL_PREFIX "/usr/local/lib")
set(protobuf_BUILD_EXAMPLES OFF)
set(protobuf_BUILD_SHARED_LIBS ON)
set(protobuf_BUILD_TESTS OFF)
set(protobuf_INSTALL_EXAMPLES OFF)
set(protobuf_MSVC_STATIC_RUNTIME OFF)
set(protobuf_WITH_ZLIB ON)
6、cd ../回到protobuf-3.5.0创建build文件夹
7、cd build
8、cmake ../cmake ////这里就是使用cmake编译cmake目录下的CMakeList.txt
9、make -j2
10、完成
linux下编译protobuf的更多相关文章
- linux下编译protobuf(可以编译成pb.go)
编译前需要安装gtest $ cd googletest $ cmake -DBUILD_SHARED_LIBS=ON . $ make $ sudo cp -a include/gtest /hom ...
- linux下编译gcc6.2.0
linux下编译gcc6.2.0 在archlinx的下gcc已经更新到6.2.1了,win10的WSL下还是gcc4.8.官方源没有比较新的版本,于是自己编译使用. GCC6的几个新特性 GCC 6 ...
- LINUX下编译安装PHP各种报错大集合
本文为大家整理汇总了一些linux下编译安装php各种报错大集合 ,感兴趣的同学参考下. nginx1.6.2-mysql5.5.32二进制,php安装报错解决: 123456 [root@clien ...
- linux下编译安装vim7.4并安装clang_complete插件
linux下编译安装vim7.4并安装clang_complete插件 因为debian里软件仓库中下载安装的vim是不支持python写的插件的(可以打开vim,在命令模式先输入:py测试一下),导 ...
- linux下编译出现空间不足解决办法
linux下编译出现空间不足解决办法 编译内核出现问题: AS .tmp_kallsyms1.o .tmp_kallsyms1.S:2: fatal error: when writing ...
- linux下编译安装curl
linux下编译安装curl 1.下载curl git clone https://github.com/curl/curl.git 2.在curl目录下生成configure文件 ./buldcon ...
- 如何在Kali Linux下编译Windows Exploit
前言 微软的Windows在企业或是个人应用领域占据着最大的市场份额,在渗透测试过程中你会经常遇到很多Windows的工作站和服务器.另一方面,大多数渗透测试人员主要使用基于Linux的发行版渗透测试 ...
- 如何用javac 和java 编译运行整个Java工程 (转载)【转】在Linux下编译与执行Java程序
如何用javac 和java 编译运行整个Java工程 (转载) http://blog.csdn.net/huagong_adu/article/details/6929817 [转]在Linux ...
- linux下编译qt5.6.0静态库——configure配置
linux下编译qt5.6.0静态库 linux下编译qt5.6.0静态库 configure生成makefile 安装选项 Configure选项 第三方库: 附加选项: QNX/Blackberr ...
随机推荐
- java中的堆,栈和方法区(转)
来源:https://www.cnblogs.com/iliuyuet/p/5603618.html https://blog.csdn.net/lin542405822/article/detail ...
- [Swift]LeetCode43. 字符串相乘 | Multiply Strings
Given two non-negative integers num1 and num2 represented as strings, return the product of num1and ...
- [Swift]LeetCode111. 二叉树的最小深度 | Minimum Depth of Binary Tree
Given a binary tree, find its minimum depth. The minimum depth is the number of nodes along the shor ...
- [Swift]LeetCode813. 最大平均值和的分组 | Largest Sum of Averages
We partition a row of numbers A into at most K adjacent (non-empty) groups, then our score is the su ...
- 论JVM爆炸的几种姿势及自救方法,你不得不知!
前言 如今不管是在面试还是在我们的工作中,OOM总是不断的出现在我们的视野中,所以我们有必要去了解一下导致OOM的原因以及一些基本的调整方法,大家可以通过下面的事例来了解一下什么样的代码会导致OOM, ...
- mysql主从集群配置
1.二进制日志 主: #master vim /etc/mysql/my.cnf #server-id server-id=2 #二进制日志 log-bin=musql-bin#statement r ...
- "无需开发经验" 也能拥有小程序
本文分享嘉宾:毛帅,又拍图片管家资深开发工程师,主要负责又拍图片管家.图管小程序第三方平台.图管小程序等项目的开发.维护及拓新工作.熟悉 JS / C++ 等语言,有丰富的 NodeJS 开发经验,热 ...
- qt 拖拽 修改大小
写次篇文章之前,qt窗口的放大缩小和拖拽我都是通过setGeometry方法实现的,但是作为windows程序,windows支持橡 皮筋式(拖拽时有一个虚框)拖拽和拉伸.通过setGeometry方 ...
- Redis分区
数据是怎样分布在多个Redis实例上的 分区是将你的数据分布在多个Redis实例上,以至于每个实例只包含一部分数据. 为什么分区是有用的呢 Redis分区有两个主要目标: 它允许更大的数据库,用许多计 ...
- 《HelloGitHub月刊》第 11 期
<HelloGitHub>第 11 期 兴趣是最好的老师,<HelloGitHub>就是帮你找到兴趣! 简介 最开始我只是想把自己在浏览 GitHub 过程中,发现的有意思.高 ...