Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/go/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
&引用;ELF可执行文件errno“中没有调试信息;运行使用gccgo构建的二进制文件时_Go_Gccgo - Fatal编程技术网

&引用;ELF可执行文件errno“中没有调试信息;运行使用gccgo构建的二进制文件时

&引用;ELF可执行文件errno“中没有调试信息;运行使用gccgo构建的二进制文件时,go,gccgo,Go,Gccgo,我决定试一试,因此编写了以下代码: package main import "fmt" func main() { fmt.Printf("Hello, World\n") } 我将它保存在main.go下,然后尝试使用gccgo main.go-o main编译它。这起作用了。但是,当我尝试/main时,我收到了以下消息: no debug info in ELF executable errno -1 fatal error: no debug info in ELF exec

我决定试一试,因此编写了以下代码:

package main

import "fmt"

func main() {
    fmt.Printf("Hello, World\n")
}
我将它保存在
main.go
下,然后尝试使用
gccgo main.go-o main
编译它。这起作用了。但是,当我尝试
/main
时,我收到了以下消息:

no debug info in ELF executable errno -1
fatal error: no debug info in ELF executable

runtime stack:
no debug info in ELF executable errno -1
panic during panic

到底发生了什么?

首先,不要使用gccgo,它不支持Go 1.3

其次,Go的运行时依赖于调试信息,我猜您使用的是一个较旧版本的gcc(可能是4.8),它会自动剥离它,您必须像
gccgo-gmain.Go-omain
一样运行它


如果你正在使用ubuntu,这是相关的

根据我的
gcc--version
的输出,我使用的是版本4.9.1。显然,即使是自动删除调试信息!添加
-g
修复了这个问题。奇怪的是,它不应该向发行版的gccgo维护人员报告一个bug。但是正如我指出的,请使用
go
本身,gccgo只支持go 1.2。
gccgo
gc
套件相比有其自身的优点,使用它可能有正当的理由。例如,您可能希望有一个动态链接的可执行文件(针对
libgoN.so
或类似文件)。另一种情况是,
gccgo
目前更擅长优化CPU密集型代码(如在适用的情况下进行矢量化)。因此,请至少确保提出问题的两个方面,而不仅仅是其中一个。发布说明也包括在GCC bug跟踪器上: