Go语言CPU依赖吗?
我知道它支持x86、x86_64和ARM。它有像汇编程序代码块那样的依赖CPU的代码吗?
PS I不够清楚。Go语言实现是依赖CPU的吗?
我不希望在我的程序中添加ARM程序代码。我想知道是否可以在x86(_64)和ARM上编译Go程序,并且不支持所有其他平台。
发布于 2014-01-03 04:57:19
Go是编译的,因此最终结果确实是(特定于CPU的)计算机代码。
$ echo 'package main\nfunc main(){ println("hello world") }' > hello.go
$ go build hello.go
$ objdump -D hello | head
hello: file format elf32-i386
Disassembly of section .text:
08048c00 <main.main>:
8048c00: 65 8b 0d 00 00 00 00 mov %gs:0x0,%ecx
8048c07: 8b 49 f8 mov -0x8(%ecx),%ecx
8048c0a: 3b 21 cmp (%ecx),%esp
因此,您将不能只使用为ARM编译的可执行文件,并在x86上运行它。
尽管如此,Go有针对不同OSes和体系结构的OSes程序,因此在大多数情况下,您不需要一堆运行不同OSes的机器来为这些目标编译程序。
https://stackoverflow.com/questions/20904062
复制