go - 静态链接Go程序到/usr/lib/libSystem.B.dylib

标签 go chroot

我试图让我的 Go 程序在 chroot jail 中作为一个独立的二进制文件运行。当我在 chroot jail 中运行该程序时,它立即终止并显示以下错误消息:Killed: 9。我正在使用这个脚本构建:

#!/bin/sh -e
export CGO_ENABLED=0
go build -ldflags=-s -o ./dist/contained ./source/main.go

使用 otool -L ./dist/contained 查看是否有任何库链接到它证实了我的怀疑:

./dist/contained:
        /usr/lib/libSystem.B.dylib (compatibility version 0.0.0, current version 0.0.0)

我的问题是:如何让/usr/lib/libSystem.B.dylib 及其所有依赖项静态链接到 Go 程序?我似乎遵循了所有说明我在其他地方看到过静态链接,所以我不明白为什么还有动态链接的文件。

最佳答案

从 Go 1.12 开始,您不能在 macOS 上使用 - 请参阅 https://github.com/golang/go/issues/17490了解详情。

关于go - 静态链接Go程序到/usr/lib/libSystem.B.dylib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55890415/

相关文章:

go - Go 中的函数冲突

go - 如何获取交易的结果和状态

linux - 链接 ARM 上的 SQLite3(x86_64 主机)

android - ioctl LOOP_SET_FD 失败

linux - sftp chroot 目录上的公钥授权

go - Go 编程语言中的 For 循环

json - 使用 GO 解码 JSON 失败,有什么提示吗?

linux - 提取 Docker.io 镜像的根文件系统并在 chroot 中使用它是否安全?

permissions - Debian Lenny 中的访问控制列表

linux - 用户在 chroot 中不存在错误