使用'go build'交叉编译时提取目标文件时出现问题

问题描述

我正在尝试创建一个go.o对象文件,该文件将使用外部链接程序进行链接。我按照gopher-os过程提取目标文件。

main.go:

package main

func main() {

}

Makefile:

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

确实在build/目录中创建了 go.o 文件,但是对该文件的任何进一步使用都无法在我的工作中取得成功。

我尝试将CGO_ENABLED设置为01,但似乎没有任何影响。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...