相同平台是否使用交叉编译?

jdxj · 2018-12-19 17:15:42 · 700 次点击 · 大约8小时之前 开始浏览    置顶
这是一个创建于 2018-12-19 17:15:42 的主题,其中的信息可能已经有所发展或是发生改变。

我在自己的电脑上编译了一个简单的 web 程序, 想要放到服务器上, 发现无法运行:

-bash: ./web: 无法执行二进制文件

本机电脑环境为:

# 系统
Linux jxdj-pc 4.14.87-1-MANJARO #1 SMP PREEMPT Sat Dec 8 15:56:41 UTC 2018 x86_64 GNU/Linux
# go env
GOARCH="amd64"
GOOS="linux"

服务器环境为:

# 系统
Linux localhost.localdomain 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
# go env
GOARCH="amd64"
GOOS="linux"

本机是 manjaro, 服务器是 centos, 我在服务器上已经给了执行权限, 发现报以上错误, 我在本机两次编译都报相同错误

$ go build -o web *.go
$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o web *.go
  • 请问这种相同平台 (linux) 不同发行商 (manjaro, centos) 情况下如何编译?
  • 我找到了 Gox 库, 不知道能不能解决这种问题.

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

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

700 次点击  
加入收藏 微博
2 回复  |  直到 2018-12-20 16:00:34
wizardvan
wizardvan · #1 · 6年之前

我觉得你生成完之后是不是应该用file确认一下文件格式比较好,也可以用readelf等确认链接库的版本等等。

jdxj
jdxj · #2 · 6年之前

是可执行文件

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