thrift c++ go beego

安装go

go官网下载需要的版本,我下载的是go1.15.6.linux-amd64.tar.gz,只需解压并配置环境变量即可。操作如下:

tar -C /usr/local -xzf go1.15.6.linux-amd64.tar.gz

配置环境变量,添加到~/.bashrc中

#go语言安装主根目录
export GOROOT=/usr/local/go #替换你的目录
#GOPATH 是自己的go项目路径,自定义设置
export GOPATH=/Users/ding/go_workspace #替换你的目录
#GOBIN 当我们使用go install命令编译后并且安装的二进制程序目录
export GOBIN=$GOPATH/bin
# 启用 Go Modules 功能
export GO111MODULE=on
# 配置 GOPROXY 环境变量
export GOPROXY=https://goproxy.cn
export PATH=$PATH:$GOROOT/bin:$GOBIN

然后执行,

source ~/.bashrc
#查看go的环境
go env

参考:
https://beego.me/docs/install/env.md
https://golang.org/doc/install?download=go1.15.6.linux-amd64.tar.gz
https://github.com/golang/go/wiki/SettingGOPATH?spm=a2c4g.11186623.2.14.56d3ff6dUYKmY5

bee&beego安装

go get github.com/beego/bee/v2
go get github.com/beego/beego/v2

由于安装Go时本机设置了 GOBIN,那么上面的bee命令就会安装到 GOBIN 目录下。

参考:https://beego.me/docs/install/

Thrift编译和安装

安装依赖

sudo apt-get install automake bison flex git libboost-all-dev libevent-dev libssl-dev libtool make pkg-config build-essential g++

编译和安装

github下载代码,然后根据自己的需要切换到相应的版本。

git clone git@github.com:apache/thrift.git
./bootstrap.sh
./configure --with-boost=/usr/local CXXFLAGS='-g -O2'
make -j8
sudo make install

编译过程中遇到的问题:

  1. 以前安装过thrift 0.14.0,卸载之后切换到0.13.0进行编译时,如果直接执行./configure,仍旧是0.14.0,需要重新执行bootstrap.sh生成configure文件;
  2. 在执行bootstrap.sh时,输出make distclean…之后一直卡着不动,应该是make -k distclean >/dev/null 2>&1出问题了。没有深研问题所在,直接重新拉代码然后安步执行
  3. 编译0.13.0版本时,执行configure时输出“Using javac … ”后一直卡着不动,查看文件发现,我安装了java环境,但未安装gradle,从而
    echo " Using Gradle version … : $(lib/java/gradlew --version --quiet | grep Gradle 2>&1)"导致卡着。解决方案:由于我没有用到java,直接将java关闭。修改configure文件内容如下:
:<<!
if test "${with_java+set}" = set; then :
  withval=$with_java; with_java="$withval"
else
  with_java=yes

fi
!
  1. make时报错如下:
unrecognized import path "golang.org/x/net/context": https fetch: Get "https://golang.org/x/net/context?go-get=1": dial tcp 216.239.37.1:443: i/o timeout

在设置了GOPROXY代理之后仍旧抛错,采用了手动下载相应包的解决方案。如下:

mkdir -p $GOPATH/src/golang.org/x
cd $GOPATH/src/golang.org/x
git clone https://github.com/golang/net.git

参考:https://blog.youkuaiyun.com/dong_beijing/article/details/83578811

  1. make时报go相关的错误,错误信息如下:
cannot find main module, but found .git/config in /home/lxj/Data/Tools/thrif

解决方案有两种:
(1)将~/.bashrc中的GO111MODULE修改为off;
(2)可以根据提示在工程根目录执行go mod init
任选一种均可解决。
参考:https://www.cnblogs.com/haima/p/14020284.html

注意:
(1)无论是执行./bootstrap.sh或者./configure只要一直卡着不动就是有问题,需要自己修改相应的脚本
(2)thrift编译安装的必须与go中使用的是同一个版本,否则从go中调用时会报错;

应用thrift过程中出错介绍:
未安装go之前,先编译thrift master分支,安装的版本为0.14.0; 后续因为用到go,通过go get git.apache.org/thrift.git/lib/go/thrift自动安装最新的版本为0.13.0;在通过go调用thrift生成的go文件时报如下的错误:
在这里插入图片描述将安装的thrift版本将为0.13.0,并重新执行thrift --gen go xxx.thrift后,问题解决。

thrift rpc进行c++与go通信

https://www.cnblogs.com/pluse/p/7761365.html
该帖子写得比较详细,安步操作即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值