go - 如何构建 thrift4go?

标签 go thrift

我是 GO 新手。 我决定使用 Thrift for Go 的实现。 阅读手动安装说明步骤后我有 从 git 下载了最新的 Thrift 0.9.0 并开始构建过程:

我的构建脚本如下:

#!/bin/bash
export THRIFT=$(pwd)/thrift
export THRIFT4GO=$(pwd)/thrift4go
export GOROOT=/usr

bash $THRIFT4GO/scripts/merge_and_build.sh -b

cd $THRIFT
#./cleanup.sh
./bootstrap.sh
./configure --with-go --without-python --without-csharp

make
if "$?" == "1"; then
    ln -s $THRIFT/lib/go/src/thrift $GOPATH/src/thrift
    go install thrift
fi

但是 make 在 GO 上运行不佳,问题出在哪里? 我已经正确安装了 GO,并在 bash 中导出了 GOPATH 变量,“go install”适用于其他项目。 我不明白为什么 GO 找不到包。

Making all in go
make[3]: Entering directory `/home/user/projects/delkon/thrift/lib/go'
make  check-local
make[4]: Entering directory `/home/user/projects/delkon/thrift/lib/go'
go build -v -x thrift
WORK=/tmp/go-build548238117
src/thrift/tiostream_transport.go:23:2: import "bufio": cannot find package
src/thrift/tframed_transport.go:23:2: import "bytes": cannot find package
src/thrift/tmap.go:24:2: import "container/list": cannot find package
src/thrift/tjson_protocol.go:23:2: import "encoding/base64": cannot find package
src/thrift/tbinary_protocol.go:23:2: import "encoding/binary": cannot find package
src/thrift/tsimple_json_protocol.go:26:2: import "encoding/json": cannot find package
src/thrift/tapplication_exception.go:23:2: import "errors": cannot find package
src/thrift/tcompact_protocol.go:24:2: import "fmt": cannot find package
src/thrift/tbinary_protocol.go:24:2: import "io": cannot find package
src/thrift/ttransport.go:23:2: import "log": cannot find package
src/thrift/tbinary_protocol.go:25:2: import "math": cannot find package
src/thrift/tnonblocking_server_socket.go:23:2: import "net": cannot find package
src/thrift/thttp_client.go:24:2: import "net/http": cannot find package
src/thrift/thttp_client.go:25:2: import "net/url": cannot find package
src/thrift/ttransport.go:24:2: import "os": cannot find package
src/thrift/tmap.go:25:2: import "reflect": cannot find package
package thrift
imports runtime: import "runtime": cannot find package
src/thrift/tfield.go:23:2: import "sort": cannot find package
src/thrift/thttp_client.go:26:2: import "strconv": cannot find package
src/thrift/tbinary_protocol.go:26:2: import "strings": cannot find package
src/thrift/tnonblocking_socket.go:24:2: import "time": cannot find package
make[4]: *** [check-local] Error 1
make[4]: Leaving directory `/home/user/projects/delkon/thrift/lib/go'
make[3]: *** [check-am] Error 2
make[3]: Leaving directory `/home/user/projects/delkon/thrift/lib/go'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/home/user/projects/delkon/thrift/lib'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/user/projects/delkon/thrift'
make: *** [all] Error 2

感谢您的任何意见 附注 Arch Linux(X86、64)

更新 问题是当从 GIT 克隆 thrift 时,使用 https://dist.apache.org/repos/dist/release/thrift/0.9.0/thrift-0.9.0.tar.gz版本代替

最佳答案

我试图完全遵循所有Manual Installation步骤没有任何问题。

(12:49) jnml@fsc-r550:~$ go version
go version go1.0.3
(12:49) jnml@fsc-r550:~$ go env
GOARCH="amd64"
GOBIN="/home/jnml/bin"
GOCHAR="6"
GOEXE=""
GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread"
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/jnml"
GOROOT="/home/jnml/go"
GOTOOLDIR="/home/jnml/go/pkg/tool/linux_amd64"
CGO_ENABLED="1"
(12:49) jnml@fsc-r550:~$ 

注意:我已将 thrift4go 存储库克隆到 $GOPATH/src/github.com/pomack/thrift4go 中。 README.md 中没有提到这一点。

关于go - 如何构建 thrift4go?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14234224/

相关文章:

select - 戈朗 : select statement exits when it shouldn't

Go errors : Is() and As() claim to be recursive, 是否有实现错误接口(interface)并支持此递归的任何类型 - 无错误?

python - 从不同目录执行时python导入错误

java - Android 上的 Thrift 客户端

go - 三个 etcd-go 包有什么区别?

来自 Go 的 Android API

docker - 如何使用主机上的golang访问安装在docker中的kafka

c# - Thrift/Proto 如何做?

java - hive 和 spark 分布的 hive thrift 服务器之间的区别

c++ - HBase 上的 Thrift 是否有任何性能基准?