go - 使用“go build”进行交叉编译时提取目标文件时出现问题
问题描述
我正在尝试创建一个 go.o 目标文件,我将使用外部链接器进行链接。我按照gopher-os程序提取目标文件。
main.go:
package main
func main() {
}
生成文件:
go.o:
mkdir -p build
GOARCH=386 GOOS=linux CGO_ENABLED=0 go build -n main.go 2>&1 | sed \
-e "1s|^|set -e\n|" \
-e "1s|^|export GOOS=linux\n|" \
-e "1s|^|export GOARCH=386\n|" \
-e "1s|^|export CGO_ENABLED=0\n|" \
-e "1s|^|WORK='build/'\n|" \
-e "1s|^|alias pack='go tool pack'\n|" \
-e "/^mv/d" \
-e "s|-extld|-tmpdir='build/' -linkmode=external -extldflags='-nostdlib' -extld|g" \
| sh 2>&1 | sed -e "s/^/ | /g"
当我调用时make go.o
,我在终端中收到以下消息:
| loadinternal: cannot find runtime/cgo
| /usr/bin/ld: warning: cannot find entry symbol _start; defaulting to 0000000008049000
go.o文件确实在目录中创建,但对该build/
文件的任何进一步使用都不会导致我的工作进一步取得成功。
我试过设置CGO_ENABLED
,0
但1
似乎没有任何影响。
解决方案
推荐阅读
- c++ - 用名称标记 std::function?
- sql - Postgres 不返回表中值的结果
- database - Angular Firebase 数据库快照和值更改
- c# - 试图读取或写入受保护的内存错误。请提出建议
- angular - 在控制台中看不到 @Input 的值,但在 HTML 中可用
- visual-studio - 尝试使用 VisualStudio 15.7.0 Preview 6.0 发布 Azure Functions (v1) 时出错
- regex - 将字符串日期更改为所需格式
- r - 如何将正态曲线拟合到此 R 代码中?
- python - 获取列表之间的唯一产品并保持输入顺序
- java - 在 Mac 上使用 Windows Native L&F (Java/Swing)