无法使用foundationdb编译简单的围棋程序



尝试在macos手臂上为linux交叉编译。我的示例项目看起来像这样:
main.go:

package main
import(
"github.com/apple/foundationdb/bindings/go/src/fdb"
)

func main() {
fdb.APIVersion(630)
fdb.MustOpenDatabase("fdb.cluster")
}

go.mod

module fdbtest
go 1.19
require github.com/apple/foundationdb/bindings/go v0.0.0-20221026173525-97cc643cef69
require golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 // indirect

go.sum

github.com/apple/foundationdb/bindings/go v0.0.0-20221026173525-97cc643cef69 h1:vG55CLKOUgyuD15KWMxqRgTPNs8qQfXPtWjYYN5Wai0=
github.com/apple/foundationdb/bindings/go v0.0.0-20221026173525-97cc643cef69/go.mod h1:w63jdZTFCtvdjsUj5yrdKgjxaAD5uXQX6hJ7EaiLFRs=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=

我已经通过go get github.com/apple/foundationdb/bindings/go@6.3.25安装了foundationdb go lang绑定

但当我做env GOOS=linux GOARCH=amd64 go build时,我得到以下错误:

env GOOS=linux GOARCH=amd64 go build                                                                                       
# github.com/apple/foundationdb/bindings/go/src/fdb
../../../go/pkg/mod/github.com/apple/foundationdb/bindings/go@v0.0.0-20221026173525-97cc643cef69/src/fdb/keyselector.go:39:10: undefined: KeyConvertible
../../../go/pkg/mod/github.com/apple/foundationdb/bindings/go@v0.0.0-20221026173525-97cc643cef69/src/fdb/snapshot.go:33:3: undefined: transaction
../../../go/pkg/mod/github.com/apple/foundationdb/bindings/go@v0.0.0-20221026173525-97cc643cef69/src/fdb/generated.go:45:9: undefined: NetworkOptions
<...>
../../../go/pkg/mod/github.com/apple/foundationdb/bindings/go@v0.0.0-20221026173525-97cc643cef69/src/fdb/generated.go:94:9: too many errors

所以它似乎不能从fdb中找到任何类型。然而KeyConvertibleNetworkOptions(和其他)存在于../../../go/pkg/mod/github.com/apple/foundationdb/bindings/go@v0.0.0-20221026173525-97cc643cef69/src/fdb/fdb.go

我的golang版本:go version go1.19.3 darwin/arm64
新的fdb go绑定(7.1.25,7.1.0)似乎表现相同…

我在这里错过了什么?

如果您遵循https://github.com/apple/foundationdb/tree/main/bindings/go,您可以看到如何正确安装软件包。

arm64架构安装可能有问题,但您也应该检查一些需求。

在我使用amd64架构的情况下,Windows 11 WSL2的默认Ubuntu安装缺少一些依赖项:

mono
  • libc6
  • cmake

安装以上包后,错误消失了。

详情见https://forums.foundationdb.org/t/golang-errors-finding-github-com-apple-foundationdb-bindings-go-src-fdb/4133

最新更新