草庐IT

go - 从 slice 差异gccgo vs gc中删除元素

我发现GCCGO有一个非常奇怪的问题,我想知道是否有人可以解释它。我正在尝试使用建议的slice技巧(https://github.com/golang/go/wiki/SliceTricks)按索引从slice中删除一个元素。以下代码(https://play.golang.org/p/f039m1h7Z1):packagemainimport"fmt"funcmain(){xs:=[]int{0,1,2,3,4}i:=2xs,xs[len(xs)-1]=append(xs[:i],xs[i+1:]...),0fmt.Println(xs)}适用于go编译器(gorun),但是当我尝

go - 你如何让gccgo编译pig.go?

在golang.org网站上有一个文件pig.go:http://golang.org/doc/codewalk/functions/inaboxlabeleddoc/codewalk/pig.go用gccgo版本编译(Ubuntu/Linaro4.6.1-9ubuntu3)4.6.1gccgopig.go给出关于找不到math/rand的错误消息pig.go:9:11:error:importfile‘math/rand’notfound 最佳答案 您的gccgo版本实现了该语言的旧版本。要编译Go1代码,您需要gccgo4.7.

go - 运行使用 gccgo 构建的二进制文件时为 "no debug info in ELF executable errno"

我决定尝试一下Go,因此编写了以下代码:packagemainimport"fmt"funcmain(){fmt.Printf("Hello,World\n")}我将其保存在main.go下,然后尝试使用gccgomain.go-omain对其进行编译。这奏效了。但是,当我尝试./main时,我收到以下消息:nodebuginfoinELFexecutableerrno-1fatalerror:nodebuginfoinELFexecutableruntimestack:nodebuginfoinELFexecutableerrno-1panicduringpanic到底发生了什么?

go - 如何使用 gccgo 导入非标准库包

首先,所有这些代码都可以使用go工具成功构建(例如gobuild,goinstall)假设我有一个a.go试图从github导入一个非标准库pkg:packageaimport("fmt""github.com/usr/pkg")funcinit(){fmt.Println("Importpkg",pkg.somevar)}当我尝试用gccgo编译它时:$gccgo-ca.goa.go:5:20:error:importfile‘github.com/usr/pkg’notfound...然后我阅读了Settingupandusinggccgo,它说Whenyouimportthepa

go - 为什么在那种特殊情况下 gccgo 比 gc 慢?

我相信每个了解golang的人都知道blogpost这里。再次阅读,我想知道使用gccgo代替gobuild是否会提高速度。在我的典型用例(科学计算)中,gccgo生成的二进制文件总是比gobuild生成的二进制文件快。所以,只需获取此文件:havlak6.go并编译它:gobuildhavlak6.go-Ohavlak6_gogccgo-ohavlak6_gccgo-march=native-Ofasthavlak6.go惊喜!$/usr/bin/time./havlak6_go5.45user0.06system0:05.54elapsed99%CPU$/usr/bin/time.

gcc - 如何使用 gccgo 构建完整的 go 程序二进制文件?

我注意到当使用gobuild时,二进制结果可能超过2MB;但是使用gccgo二进制文件小于35k。我在使用gccgo时注意到的另一个问题是生成的二进制文件不能在另一个linux机器上运行(我相信缺少libgo.so)但是gobuild二进制文件运行得很好(所以我想这是因为二进制文件包含运行所需的所有内容?);有没有办法用gccgo做到这一点? 最佳答案 你必须使用-static标志:Usethe-staticoptiontodoafullystaticlink(thedefaultforthegccompiler).http://g

go - 如何让 gccgo 生成矢量化代码?

我试图说服gccgo对以下代码段进行矢量化但没有成功:packagefoofuncSum(v[]float32)float32{varsumfloat32=0for_,x:=rangev{sum+=x}returnsum}我正在验证生成的程序集:$gccgo-O3-ffast-math-march=native-Stest.gogccgo版本是:$gccgo--versiongccgo(Ubuntu4.9-20140406-0ubuntu1)4.9.020140405(experimental)[trunkrevision209157]gccgo不应该能够向量化这段代码吗?等效的C代码

go - 如何让 gccgo 生成矢量化代码?

我试图说服gccgo对以下代码段进行矢量化但没有成功:packagefoofuncSum(v[]float32)float32{varsumfloat32=0for_,x:=rangev{sum+=x}returnsum}我正在验证生成的程序集:$gccgo-O3-ffast-math-march=native-Stest.gogccgo版本是:$gccgo--versiongccgo(Ubuntu4.9-20140406-0ubuntu1)4.9.020140405(experimental)[trunkrevision209157]gccgo不应该能够向量化这段代码吗?等效的C代码

go - 'gc' 和 'gccgo' 之间的主要区别是什么?

两种流行的Go编译器“gc”和“gccgo”之间的主要区别是什么?构建性能?运行时性能?命令行选项?许可?我不是在寻找关于哪个最好的意见,只是对它们之间的差异的基本概述,因此我可以决定哪个最适合我的需求。 最佳答案 你可以在“Settingupandusinggccgo”中看到更多:gccgo,acompilerfortheGolanguage.ThegccgocompilerisanewfrontendforGCC.Notethatgccgoisnotthegccompiler如“GccgoinGCC4.7.1”(2012年7月)

go - 'gc' 和 'gccgo' 之间的主要区别是什么?

两种流行的Go编译器“gc”和“gccgo”之间的主要区别是什么?构建性能?运行时性能?命令行选项?许可?我不是在寻找关于哪个最好的意见,只是对它们之间的差异的基本概述,因此我可以决定哪个最适合我的需求。 最佳答案 你可以在“Settingupandusinggccgo”中看到更多:gccgo,acompilerfortheGolanguage.ThegccgocompilerisanewfrontendforGCC.Notethatgccgoisnotthegccompiler如“GccgoinGCC4.7.1”(2012年7月)