gpt4 book ai didi

linux - 从 Linux 为 Mac 创建 go build 时出现问题?

转载 作者:IT王子 更新时间:2023-10-29 01:46:46 25 4
gpt4 key购买 nike

我正在尝试从 Linux 机器为 Mac 创建一个构建。我可以在不启用 CGO 的情况下通过以下通用方式执行此操作。

env GOOS=darwin GOARCH=amd64 go build

使用启用 CGO 的命令

env CGO_ENABLED=1 GOOS=darwin GOARCH=amd64 go build

但是如果我启用 CGO 那么它就不起作用并出现以下错误

# os/user
/usr/local/go/src/os/user/getgrouplist_darwin.go: In function 'mygetgrouplist':
/usr/local/go/src/os/user/getgrouplist_darwin.go:16:11: warning: implicit declaration of function 'getgrouplist' [-Wimplicit-function-declaration]
int rv = getgrouplist(user, (int) group, buf, ngroups);
^
# net
/usr/local/go/src/net/cgo_bsd.go:15:72: could not determine kind of name for C.AI_MASK
# ConfigTool/Go/vendor/github.com/mattn/go-sqlite3
/tmp/go-build769992187/b129/_x011.o: In function `unixDlError':
vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c:38475: undefined reference to `dlerror'
/tmp/go-build769992187/b129/_x011.o: In function `unixDlClose':
vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c:38506: undefined reference to `dlclose'
/tmp/go-build769992187/b129/_x011.o: In function `unixDlSym':
vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c:38502: undefined reference to `dlsym'
/tmp/go-build769992187/b129/_x011.o: In function `unixDlOpen':
vendor/github.com/mattn/go-sqlite3/sqlite3-binding.c:38461: undefined reference to `dlopen'
collect2: error: ld returned 1 exit status

最佳答案

如果您要在 linux 上为 darwin 进行交叉编译并且您正在使用 CGO_ENABLED=1,那么您将还需要一个 C 交叉编译器。

https://github.com/golang/go/issues/22510#issuecomment-340938955

关于linux - 从 Linux 为 Mac 创建 go build 时出现问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54435099/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com