Go 围棋语言依赖于CPU吗?

Go 围棋语言依赖于CPU吗?,go,cpu,cpu-architecture,Go,Cpu,Cpu Architecture,围棋语言依赖于CPU吗 我知道它支持x86、x86_64和ARM。它是否有一些依赖CPU的代码,比如汇编程序代码块 PS我不够清楚。Go语言实现是否依赖于CPU 我不希望在我的程序中添加ARM汇编代码。我想知道Go程序是否可以在x86(_64)和ARM上编译,而所有其他平台都不受支持。Go是编译的,因此最终结果确实是(特定于CPU的)机器代码 $ echo 'package main\nfunc main(){ println("hello world") }' > hello.go $

围棋语言依赖于CPU吗

我知道它支持x86、x86_64和ARM。它是否有一些依赖CPU的代码,比如汇编程序代码块

PS我不够清楚。Go语言实现是否依赖于CPU


我不希望在我的程序中添加ARM汇编代码。我想知道Go程序是否可以在x86(_64)和ARM上编译,而所有其他平台都不受支持。

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
$echo'package main\nfunc main(){println(“hello world”)}>hello.go
$go构建hello.go
$objdump-D你好|头
您好:文件格式elf32-i386
第节的分解。正文:
08048c00:
8048c00:65 8b 0d 00 mov%gs:0x0,%ecx
8048c07:8b 49 f8 mov-0x8(%ecx),%ecx
8048c0a:3b 21 cmp(%ecx),%esp
因此,您将无法只获取为ARM编译的可执行文件,然后在x86上运行它


尽管如此,Go有针对不同操作系统和体系结构的程序,因此在大多数情况下,您不需要运行不同操作系统的一堆机器(虚拟或真实)来为这些目标编译程序。

取决于您所说的CPU依赖。目前至少有两个Go编译器(Google和GNU)具有不同的平台支持。该语言本身是可移植的,很少对CPU进行假设。
int
类型可以是64/32位宽。或者您是在谈论为提高效率而在汇编中编写的函数(如RC4)?你能举例说明你所说的CPU依赖性是什么意思吗?我不知道Go是否依赖CPU。Go站点告诉我们Go只在x86(_64)和ARM上工作。为什么?我希望为ddwrt路由器编写代理服务器。它有MIPSEL CPU,它提到了x86和ARM,但还有许多其他平台。我知道如果我为ARM编译,那么它将在ARM上运行。但这意味着Go将不会在MIPS、MIPSEL或PowerPC上运行您提到的链接:openbsd和plan9操作系统未在官方网站的官方页面(Windows/FreeBSD/Linux/MacOSX)上启用。虽然
go
工具链不支持MIPS或PowerPC,但这些体系结构似乎不支持。