我非常喜欢Go语言,现在我正在尝试探索x86/amd64以外的其他体系结构。我构建了Go for ARM,它似乎对该目标有很好的支持。所有库都成功构建,并且测试失败(因为它试图在amd64系统上运行ARM测试二进制文件)。
毕竟,我的5g
文件夹中有5l
/$GOBIN
,它们产生有效且有效的ARM二进制文件。
但是其他Go工具正在发生什么:
5a: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
5c: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
5g: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
5l: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
6cov: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
6nm: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
6prof: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
cgo: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, not stripped
ebnflint: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, not stripped
godefs: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
godoc: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, not stripped
gofix: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, not stripped
gofmt: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, not stripped
goinstall: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, not stripped
gomake: POSIX shell script, ASCII text executable
gopack: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.9, not stripped
gopprof: a perl script, ASCII text executable
gotest: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, not stripped
gotry: a bash script, ASCII text executable
gotype: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, not stripped
govet: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, not stripped
goyacc: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, not stripped
hgpatch: ELF 32-bit LSB executable, ARM, version 1 (SYSV), statically linked, not stripped
看?
cgo
是ARM二进制文件,gofix
和gofmt
也是ARM二进制文件。我以为如果我提供$GOHOSTOS
/$GOHOSTARCH
变量,我会交叉编译我的应用程序吗?如何使cgo
在ARM目标上工作? 最佳答案
Go linux/arm
端口不完整。例如,未实现cgo
的linux/arm
运行时。参见$GOROOT/src/pkg/runtime/cgo/gcc_arm.S
和$GOROOT/src/pkg/runtime/cgo/gcc_linux_arm.c
。
关于arm - 我的Go工具是否针对错误的体系结构构建?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8823605/