ubuntu18.04 下编译个go程序 在centos7.2上运行报错

sleepyRobin · 2019-02-27 11:42:34 · 1128 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2019-02-27 11:42:34 的主题,其中的信息可能已经有所发展或是发生改变。

公司让我接手一个golang开发的项目,对golang不太懂,望大神指点,给小白带带路。

我的开发环境是ubuntu18.04 golang版本是信息如下:

robin@robin-xubuntu:~$ go env
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/robin/.cache/go-build"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/robin/go"
GOPROXY=""
GORACE=""
GOROOT="/usr/local/go"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD=""
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build572530775=/tmp/go-build -gno-record-gcc-switches"

测试服务器的机器是centos7.2的系统,golang版本信息如下:

[root@iZbp1i991ixg51lhryk6mlZ bin]# go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/root/go"
GORACE=""
GOROOT="/usr/lib/golang"
GOTOOLDIR="/usr/lib/golang/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build693673370=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"

我把在ubuntu上编译的二进制文件放在centos上运行后报错:

[root@iZbp1i991ixg51lhryk6mlZ bin]# ./test -v
./test: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by ./test)
./test: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by ./test)
./test: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by ./test)

有疑问加站长微信联系(非本文作者)

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

1128 次点击  
加入收藏 微博
5 回复  |  直到 2019-02-27 18:22:18
sleepyRobin
sleepyRobin · #1 · 6年之前

没有大神吗?

listen342325
listen342325 · #2 · 6年之前

应该是gcc, g++版本不一样,libstdc++, libc版本不一致,兼容问题。

sheepbao
sheepbao · #3 · 6年之前

代码用了cgo吧?

sleepyRobin
sleepyRobin · #4 · 6年之前
sheepbaosheepbao #3 回复

代码用了cgo吧?

别人的代码,不太了解

sleepyRobin
sleepyRobin · #5 · 6年之前

用了centos7的机器重新编译就没有问题了

添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传