Shu*_*ken 5 cpu cpu-architecture go
Go语言CPU是否依赖?
我知道它支持x86,x86_64和ARM.它是否有一些CPU依赖代码,如汇编程序代码块?
PS我不够清楚.Go语言实现是否依赖于CPU?
我不希望在我的程序中添加ARM汇编代码.我想知道是否可以在x86(_64)和ARM上编译Go程序,并且不支持所有其他平台.
jus*_*nas 11
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
Run Code Online (Sandbox Code Playgroud)
因此,您将无法仅为ARM编译可执行文件,并在x86上运行它.
尽管如此,Go还为不同操作系统和体系结构的交叉编译程序提供了出色的支持,因此在大多数情况下,您不需要运行不同操作系统的一堆机器(虚拟或实际)来为这些目标编译程序.
| 归档时间: |
|
| 查看次数: |
700 次 |
| 最近记录: |