tstx程序代码(golang)
package main
import "fmt"
func main(){
fmt.Printf("Hello")
}
开发电脑(基于debian的linux)一切都好,但是 当我在服务器计算机上运行它(Debian 8)时,我得到了分段错误
两个系统都是amd64,代码用[go build]
编译[strace ./tstx] - 说
execve("./tstx", ["./tstx"], [/* 16 vars */]) = 0
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0xffffffffffffff8b} ---
+++ killed by SIGSEGV +++
答案 0 :(得分:0)
由于您在一台计算机上进行编译并转移到另一台计算机上,因此您确实希望确保DLL不是问题。首先,构建:
CGO_ENABLED=0 go build...
确保它看起来不错:
ldd tstx
(它应该带有“不是动态可执行文件”或类似内容)。
禁用CGO意味着可执行文件会更大(静态链接的所有内容),但dll不会成为问题,因为它是自包含的。最后,通过uname验证他们的架构是否相同也不会有害......