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
https://hk.saowen.com/a/0974f14ebeaacefc2d4ea7193121f6faf8304388acc206e1781d42781d3883af golang 使用 protobuf 的教程
https://blog.csdn.net/panshiqu/article/details/53788067 Golang 在 Mac、Linux、Windows 下如何交叉编译
1 Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序,最近使用了一下,非常好用,这里备忘一下。 2 3 Mac 下编译 Linux 和 Windows 64位可执行程序 4 5 CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go 6 CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go12 7 8 Linux 下编译 Mac 和 Windows 64位可执行程序 9 10 11 12 CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go 13 CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go12 14 15 Windows 下编译 Mac 和 Linux 64位可执行程序 16 17 18 19 SET CGO_ENABLED=0 20 SET GOOS=darwin 21 SET GOARCH=amd64 22 go build main.go 23 24 SET CGO_ENABLED=0 25 SET GOOS=linux 26 SET GOARCH=amd64 27 go build main.go123456789 28 29 GOOS:目标平台的操作系统(darwin、freebsd、linux、windows) 30 GOARCH:目标平台的体系架构(386、amd64、arm) 31 交叉编译不支持 CGO 所以要禁用它 32 33 上面的命令编译 64 位可执行程序,你当然应该也会使用 386 编译 32 位可执行程序 34 很多博客都提到要先增加对其它平台的支持,但是我跳过那一步,上面所列的命令也都能成功,且得到我想要的结果,可见那一步应该是非必须的,或是我所使用的 Go 版本已默认支持所有平台。 35 36 --------------------- 37 38 本文来自 磐石区 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/panshiqu/article/details/53788067?utm_source=copy
1 说明: 2 protobuf已经全面迁移到github,地址:https://github.com/google/protobuf 3 直接下载2.6.1版本:https://github.com/google/protobuf/archive/v2.6.1.zip 4 5 转linux不久对linux的各种路径变量不是特别熟悉,网上看了几个教程都没有提到添加 LIBRARY_PATH路径,导致自定义安装路径的时候链接失败,自己写一篇安装教程,也算作加深印象吧,希望对大家有所帮助。 6 7 8 9 默认安装: 10 11 12 13 $wget https://github.com/google/protobuf/archive/v2.6.1.zip 14 $unzip protobuf-2.6.1.zip 15 $cd protobuf-2.6.1123 16 17 下载自github的代码需要首先执行 $ ./autogen.sh 生成configure文件 18 注意autogen.sh 需要gtest包,默认是从 googletest.googlecode.com下载,国内需要FQ才能访问,很多人问autogen.sh运行失败,这里我补充一下 19 修改一下autogen.sh 20 将这段: 21 22 23 24 echo "Google Test not present. Fetching gtest-1.5.0 from the web..." 25 curl http://googletest.googlecode.com/files/gtest-1.5.0.tar.bz2 | tar jx 26 mv gtest-1.5.0 gtest123 27 28 修改为: 29 30 31 32 wget https://github.com/google/googletest/archive/release-1.5.0.tar.gz 33 tar xzvf release-1.5.0.tar.gz 34 mv googletest-release-1.5.0 gtest123 35 36 再执行 autogen.sh,这样就不会报错了 37 38 39 40 $ ./configure 41 $ make 42 $ make check 43 $ make install 44 45 我使用的是centos系统 46 /usr/local/bin 47 /usr/local/lib, 48 /usr/local/include 49 是也系统默认路径之一,所以到这一步就可以使用protobuf了 50 $ protoc -I=./ --cpp_out=./ test.proto 51 到你的test.proto文件所在目录使用命令protoc -I=./ --cpp_out=./ 生成C++版本的协议文件 52 一切OK的话,你回在当前目录看到.h和.cc文件12345678910111213 53 54 55 56 自定义安装路径: 60 protobuf默认安装在 /usr/local 目录 61 你可以修改安装目录通过 ./configure --prefix=命令 62 虽然我是root用户但觉得默认安装过于分散,所以统一安装在/usr/local/protobuf下 63 64 $./configure --prefix=/usr/local/protobuf 65 $ make 66 $ make check 67 $ make install 68 69 到此步还没有安装完毕,在/etc/profile 或者用户目录 ~/.bash_profile 70 添加下面内容 71 ####### add protobuf lib path ######## 72 #(动态库搜索路径) 程序加载运行期间查找动态链接库时指定除了系统默认路径之外的其他路径 73 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/protobuf/lib/ 74 #(静态库搜索路径) 程序编译期间查找动态链接库时指定查找共享库的路径 75 export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/protobuf/lib/ 76 #执行程序搜索路径 77 export PATH=$PATH:/usr/local/protobuf/bin/ 78 #c程序头文件搜索路径 79 export C_INCLUDE_PATH=$C_INCLUDE_PATH:/usr/local/protobuf/include/ 80 #c++程序头文件搜索路径 81 export CPLUS_INCLUDE_PATH=$CPLUS_INCLUDE_PATH:/usr/local/protobuf/include/ 82 #pkg-config 路径 83 export PKG_CONFIG_PATH=/usr/local/protobuf/lib/pkgconfig/ 84 ###################################### 85 86 好了,goog luck123456789101112131415161718192021222324252627 87 88 编译如果出现找不到符号和链接错误请记得加上链接选项 -lprotobuf 89 并确认你的静态库路径是否生效 90 91 $ echo $LIBRARY_PATH 92 93 --------------------- 94 95 本文来自 jackytse_ 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/xiexievv/article/details/47396725?utm_source=copy
https://hk.saowen.com/a/0974f14ebeaacefc2d4ea7193121f6faf8304388acc206e1781d42781d3883af golang 使用 protobuf 的教程
原文地址:https://www.cnblogs.com/pbblogs/p/9743204.html
时间: 2024-10-08 09:10:06