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

时间:2019-04-28 12:49:26

标签: go chroot

我正在尝试使我的Go程序在chroot监狱中作为单个独立的二进制文件运行。当我在chroot监狱中运行程序时,它立即死于以下错误消息: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程序?我似乎正在遵循所有说明我在其他地方看到过静态链接,所以我不明白为什么仍然有动态链接的文件。

1 个答案:

答案 0 :(得分:1)

从Go 1.12开始,您无法在macOS上-有关详细信息,请参见https://github.com/golang/go/issues/17490