go - 在 Linux 4.15.0 上编译的静态 Go 二进制文件不能在旧的 Linux 2.6.18 上运行

标签 go compilation

我使用以下代码创建了一个名为 hw.go 的文件

package main

import "fmt"

func main() {
    fmt.Println("hello world")
}

并在 ubuntu 上像这样编译(相当新的版本):

go build -v -a -tags netgo -ldflags '-w -extldflags "-static"' hw.go

然后我将二进制文件移动到同样是 64 位的旧 Linux,但在执行时遇到了这个错误:

我做错了什么?

futexwakeup addr=0x558708 returned -38
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x1006 pc=0x425e5b]

runtime stack:
runtime.throw(0x4becb7, 0x2a)
        /usr/local/go/src/runtime/panic.go:617 +0x72
runtime.sigpanic()
        /usr/local/go/src/runtime/signal_unix.go:374 +0x4a9
runtime.futexwakeup(0x558708, 0x2b1000000001)
        /usr/local/go/src/runtime/os_linux.go:81 +0x8b
runtime.notewakeup(0x558708)
        /usr/local/go/src/runtime/lock_futex.go:136 +0x44
runtime.startlockedm(0xc000000180)
        /usr/local/go/src/runtime/proc.go:2105 +0x7e
runtime.schedule()
        /usr/local/go/src/runtime/proc.go:2555 +0x69
runtime.park_m(0xc000000a80)
        /usr/local/go/src/runtime/proc.go:2605 +0xa1
runtime.mcall(0x0)
        /usr/local/go/src/runtime/asm_amd64.s:299 +0x5b

goroutine 1 [runnable, locked to thread]:
internal/poll.init()
        <autogenerated>:1 +0x73
os.init()
        <autogenerated>:1 +0x54
fmt.init()
        <autogenerated>:1 +0x54
main.init()
        <autogenerated>:1 +0x45
runtime.main()
        /usr/local/go/src/runtime/proc.go:188 +0x1c8
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1337 +0x1

最佳答案

刚刚尝试了一个旧的编译器,它工作了。 1.10.8 是它工作的最新版本,1.11.8 不工作。

*我没有检查次要版本

关于go - 在 Linux 4.15.0 上编译的静态 Go 二进制文件不能在旧的 Linux 2.6.18 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55828387/

相关文章:

javascript - 使用 Gulp 编译 JavaScript 并解决依赖关系(单独的文件)

go - 构建 Go 应用程序

C 预处理多遍

url - 编码/解码 URL

javascript - webRTC - 多房间视频 session

haskell - 将 haskell 代码概括/编译为 lambda

php - 在 Windows 上编译 php_excel 和 LibXL

c++ - gcc 优化级别 1 的子选项

go - 无法在 golang 的 http2 中使用流式传输

xml - Golang Gokogiri递归xpath异常