golang环境 centos 7
https://blog.csdn.net/ggq89/article/details/82682171 Linux下Go的安装、配置 、升级和卸载
https://blog.csdn.net/weixin_37696997/article/details/78525639 centos安装golang、protobuf
https://www.cnblogs.com/mrblue/p/8891789.html CentOS7安装Go环境
https://www.cnblogs.com/pyyu/p/8032257.html Go语言之讲解GOROOT、GOPATH、GOBIN
GOROOT为你的Go安装跟目录
GOPATH为你go程序开发目录,go get后的包也会下载到该目录。
GOBIN为你的go运行目录,运行 go install 命令后,程序会被安装到该目录。
PATH为你Go程序根目录,用于能够通过控制台调用go命令。
https://hk.saowen.com/a/0974f14ebeaacefc2d4ea7193121f6faf8304388acc206e1781d42781d3883af golang 使用 protobuf 的教程
https://blog.csdn.net/panshiqu/article/details/53788067 Golang 在 Mac、Linux、Windows 下如何交叉编译
Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序,最近使用了一下,非常好用,这里备忘一下。 Mac 下编译 Linux 和 Windows 64位可执行程序 CGO_ENABLED= GOOS=linux GOARCH=amd64 go build main.go
CGO_ENABLED= GOOS=windows GOARCH=amd64 go build main.go12 Linux 下编译 Mac 和 Windows 64位可执行程序 CGO_ENABLED= GOOS=darwin GOARCH=amd64 go build main.go
CGO_ENABLED= GOOS=windows GOARCH=amd64 go build main.go12 Windows 下编译 Mac 和 Linux 64位可执行程序 SET CGO_ENABLED=
SET GOOS=darwin
SET GOARCH=amd64
go build main.go SET CGO_ENABLED=
SET GOOS=linux
SET GOARCH=amd64
go build main.go123456789 GOOS:目标平台的操作系统(darwin、freebsd、linux、windows)
GOARCH:目标平台的体系架构(、amd64、arm)
交叉编译不支持 CGO 所以要禁用它 上面的命令编译 位可执行程序,你当然应该也会使用 编译 位可执行程序
很多博客都提到要先增加对其它平台的支持,但是我跳过那一步,上面所列的命令也都能成功,且得到我想要的结果,可见那一步应该是非必须的,或是我所使用的 Go 版本已默认支持所有平台。 --------------------- 本文来自 磐石区 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/panshiqu/article/details/53788067?utm_source=copy
说明:
protobuf已经全面迁移到github,地址:https://github.com/google/protobuf
直接下载2..1版本:https://github.com/google/protobuf/archive/v2.6.1.zip 转linux不久对linux的各种路径变量不是特别熟悉,网上看了几个教程都没有提到添加 LIBRARY_PATH路径,导致自定义安装路径的时候链接失败,自己写一篇安装教程,也算作加深印象吧,希望对大家有所帮助。 默认安装: $wget https://github.com/google/protobuf/archive/v2.6.1.zip
$unzip protobuf-2.6..zip
$cd protobuf-2.6. 下载自github的代码需要首先执行 $ ./autogen.sh 生成configure文件
注意autogen.sh 需要gtest包,默认是从 googletest.googlecode.com下载,国内需要翻墙才能访问,很多人问autogen.sh运行失败,这里我补充一下
修改一下autogen.sh
将这段: echo "Google Test not present. Fetching gtest-1.5.0 from the web..."
curl http://googletest.googlecode.com/files/gtest-1.5.0.tar.bz2 | tar jx
mv gtest-1.5. gtest123 修改为: wget https://github.com/google/googletest/archive/release-1.5.0.tar.gz
tar xzvf release-1.5..tar.gz
mv googletest-release-1.5. gtest123 再执行 autogen.sh,这样就不会报错了 $ ./configure
$ make
$ make check
$ make install 我使用的是centos系统
/usr/local/bin
/usr/local/lib,
/usr/local/include
是也系统默认路径之一,所以到这一步就可以使用protobuf了
$ protoc -I=./ --cpp_out=./ test.proto
到你的test.proto文件所在目录使用命令protoc -I=./ --cpp_out=./ 生成C++版本的协议文件
一切OK的话,你回在当前目录看到.h和.cc文件12345678910111213 自定义安装路径:
protobuf默认安装在 /usr/local 目录
你可以修改安装目录通过 ./configure --prefix=命令
虽然我是root用户但觉得默认安装过于分散,所以统一安装在/usr/local/protobuf下 $./configure --prefix=/usr/local/protobuf
$ make
$ make check
$ make install 到此步还没有安装完毕,在/etc/profile 或者用户目录 ~/.bash_profile
添加下面内容
####### add protobuf lib path ########
#(动态库搜索路径) 程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib/
#(静态库搜索路径) 程序编译期间查找动态链接库时指定查找共享库的路径
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/protobuf/lib/
#执行程序搜索路径
export PATH=$PATH:/usr/local/protobuf/bin/
#c程序头文件搜索路径
export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/protobuf/include/
#c++程序头文件搜索路径
export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/protobuf/include/
#pkg-config 路径
export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/
###################################### 好了,goog luck123456789101112131415161718192021222324252627 编译如果出现找不到符号和链接错误请记得加上链接选项 -lprotobuf
并确认你的静态库路径是否生效 $ echo $LIBRARY_PATH --------------------- 本文来自 jackytse_ 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/xiexievv/article/details/47396725?utm_source=copy
https://hk.saowen.com/a/0974f14ebeaacefc2d4ea7193121f6faf8304388acc206e1781d42781d3883af golang 使用 protobuf 的教程
golang环境 centos 7的更多相关文章
- CentOS6.4安装Golang环境
什么是Go? Go是一门并发支持.垃圾回收的编译型的系统编程语言,目的是为了创造一门具有在静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡点的一门编程语言. Go的主要特点有哪些? 类型安全和 ...
- mac 下配置protobuf 3.0 golang环境
protobuf 3.0 与 之前的 protobuf 2.6 的语法是不一样的.需要重新安装一下,本机的环境是 OS X Yosemite 10.10.2 1. 不采用home brew安装,用 ...
- CentOS6.5上golang环境配置
CentOS6.5上golang环境配置 一.下载和解压go环境包 >>cd /usr/local/src/ >>wget -c http://golangtc.com/sta ...
- 虚拟机环境Centos如何上网
虚拟机环境Centos如何上网----------by ruffianfish.痞子鱼 因为我是用的虚拟机的环境,所以一切操作角度从虚拟机出发. 虚拟机环境的优点: 适合新手学习linux 永远不要怕 ...
- golang环境搭建
golang环境搭建 好久没写博客了,最近加班好厉害,加到自己都觉得不太适合这个行业了,每天头都是沉甸甸的,可惜今年注定不是收获的季节. 最近忙里偷闲在学习nodejs,赶巧看到golang的文章,一 ...
- golang环境
Golang是谷歌开发的一款开源性语言,暂时比较方便的IDE有Inteillj Idea.LiteIDE.Eclipse(Golipse)等,使用起来比较方便的IDE:LiteIDE和Inteillj ...
- IntelliJ IDEA开发golang环境配置
IntelliJ IDEA开发golang环境配置 首先把GO安装好...(自行安装,附上一篇我之前写的MAC安装GO) 安装IntelliJ IDEA,下载地址: https://www.jetbr ...
- linux上java和golang环境变量的设置
JAVA环境变量 (1).打开~/.bashrc完成环境配置( 作用类似于/etc/bashrc, 只是针对用户自己而言,不对其他用户生效.) 文件追加 expo ...
- Ubuntu下安装Rabbitmq和golang环境
安装及配置Rabbitmq 1. 安装: sudo apt-get install rabbitmq-server 2. 启动web管理插件 sudo rabbitmq-plugins enable ...
随机推荐
- E212: Can't open file for writing Press ENTER or type command to continue
E212: Can't open file for writing Press ENTER or type command to continue 出现这个错误的原因可能有两个: 1.当前用户的权限不 ...
- 【剑指offer】反转链表
输入一个链表,反转链表后,输出新链表的表头. *与之前的问题不同,这里需要修改链表的指向(之前的问题,不需要修改结点的指针,只需使用栈保存每个结点的值) *注意非空处理以及最后一个结点指针的修改 /* ...
- vld for memory leak detector (release version)
有没有这样的情况,无法静态的通过启动和退出来查找内存泄露,比如网络游戏,你总不能直接关游戏那玩家怎么办? 现在vld支持release,我们可以动态的找. 1.在release版本使用vld了.< ...
- tips:Jquery的attr和prop的区别
Jquery的attr和prop的区别 描述:想做一个复选框checkbox全选的功能,当勾选全选后,将子项的复选框状态设置成一致的, 但遇到了一个问题,就是attr函数并不能改变子项的checkbo ...
- eclipse中svn切换用户
如果永久保存svn用户账号及密码,再更换svn用户时需要先删除C:\Users\Administrator\AppData\Roaming下的Subversion文件,然后在刷新eclipse中的sv ...
- nowcoder 寻找(LCA)
这个题貌似是过的最少的? smeow一眼给出了一个单log的算法orz 首先求出x和y的lca, x和c的lca,y和c的lca, 然后分类讨论以下就行了 实际上只有三种情况 #include< ...
- python基础之数字、字符串、列表、元组、字典
Python基础二: 1.运算符: 判断某个东西是否在某个东西里面包含: in 为真 not in 为假 (1).算术运算符: 运算符 描述 实例 + 加 表示两个对象相加 a + b输出结果3 ...
- cxf+spring+restful简单接口搭建
之前都是用soap协议搭建,最近学了下restful,以便日后翻阅,小生才疏学浅,不足之处请多见谅. 1.maven配置 <project xmlns="http://maven.ap ...
- Spring 了解Bean的一生(生命周期)
转载 https://blog.csdn.net/w_linux/article/details/80086950 该篇博客就来了解IoC容器下Bean的一生吧,也可以理解为bean的生命周期. ## ...
- Android开发中常见的设计模式(四)——策略模式
策略模式定义了一些列的算法,并将每一个算法封装起来,而且使它们还可以相互替换.策略模式让算法独立于使用它的客户而独立变换. 假设我们要出去旅游,而去旅游出行的方式有很多,有步行,有坐火车,有坐飞机等等 ...