一.golang支持在一个平台下生成另一个平台可执行程序的交叉编译功能,

1.Mac下编译Linux,windows平台的64位可执行程序:

  CGO_ENABLE=0 GOOS=linux GOARCH=amd64 go build main.go

  CGO_ENABLE=0 GOOS=windows GOARCH=amd64 go build main.go

2.Linux下编译Mac,Windows平台的64位可执行程序:

  CGO_ENABLE=0 GOOS=darwin GOARCH=amd64 go build main.go

  CGO_ENABLE=0 GOOS=windows  GOARCH=amd64 go build main.go

3,Windows下编译mac,Linux平台64可执行程序:

  set CGO_ENABLE=0

  set GOOS=darwin

  set GOARCH=amd64

  go build main.go

  set CGO_ENABLE=0

  set GOOS=linux

  set GOARCH=amd64

  go build main.go

GOOS:目标可执行程序运行操作系统,支持darwin,freebsd,linux,windows

GOARCH:目标可执行程序操作程序系统架构,包括386,amd64,arm

二,windows编辑linux可执行程序,打开cmd窗口,进入目标目录,执行以上四条,生成一个二进制文件main,可直接在linux系统执行。

上传至linux上,直接./maina会报错,找不到指定文件,因为需要授予可执行权限:

  chmod  777 main

再次执行./main即可。

三,linux上运行go二进制程序当作服务,例如使用golang ,gin写restful风格接口,现在要开启该服务,则需要不挂断的执行该程序,使用nohup命令:

  nohup ./main &

开启该服务,即开启一个进程,可ps aux|grep main查看进程序号,kill -9 进程序号,杀死进程。

四,若golang项目源码中需要引入配置文件等,则在linux服务器上,二进制所在目录下建立对应的目录结构及文件即可。

转载于:https://www.cnblogs.com/li-jing/p/10216224.html

四,Golang 交叉编译相关推荐

  1. Gin实践 番外 Golang交叉编译

    Golang交叉编译 项目地址:https://github.com/EDDYCJY/go... (快上车,支持一波) 原文地址:https://segmentfault.com/a/11... 前言 ...

  2. cgo linux arm,Golang交叉编译各个平台的二进制文件

    熟悉golang的人都知道,golang交叉编译很简单的,只要设置几个环境变量就可以了 # mac上编译linux和windows二进制 CGO_ENABLED=0 GOOS=linux GOARCH ...

  3. golang 交叉编译总结

    golang 交叉编译golang 交叉编译牵涉到三个变量CGO_ENABLED = 0 表示设置CGO工具不可用,使用go自己的编译器 GOOS:目标操作系统 GOARCH 表示程序构建环境的目标计 ...

  4. Golang交叉编译Sqlite3踩坑记录

    Golang交叉编译Sqlite3踩坑记录 ,windows下编译golang go-sqlite3解决方案 众所周知Golang能够在一个平台编译不同平台可执行程序进行发布 然而在遇到需要内置处理程 ...

  5. golang交叉编译工具,gox使用入门

    gox入门教程 先说下交叉编译是什么?  交叉编译也就是你可以在linux上编译出可以在windows上运行的程序,在32位系统编译出64位系统运行的程序. gox就是方便你使用golang的交叉编译 ...

  6. go 编译 android arm,golang交叉编译

    go env检查各项环境变量无误 进入shell环境(Windows为cmd环境),切换到项目工程的源码目录(包含main包的那个目录) 设置好环境变量,关闭CGO(交叉编译不支持所以要关闭),将编译 ...

  7. Golang 交叉编译

    各平台的GOOS和GOARCH参考 OS ARCH OS version linux 386 / amd64 / arm >= Linux 2.6 darwin 386 / amd64 OS X ...

  8. golang交叉编译

    Windows 下编译 Mac 和 Linux 64位可执行程序 SET CGO_ENABLED=0 SET GOOS=darwin SET GOARCH=amd64 go build main.go ...

  9. Golang的交叉编译问题

    参考:Golang交叉编译各个平台的二进制文件 - Go语言中文网 - Golang中文社区 (studygolang.com).也谈Go的可移植性 | Tony Bai 今天准备将一个在Mac上开发 ...

最新文章

  1. “云计算”三部曲之二:与“云”共舞——再谈云计算
  2. 最大权闭合 图 讲解
  3. PHP类中的__get()和__set函数到底有什么用
  4. Qt Creator指定动态属性
  5. 2022 WebRTC发展趋势分析
  6. CVPR 2019 | 旷视提出超分辨率新方法Meta-SR:单一模型实现任意缩放因子
  7. c语言输入字符串smallbig,为什么输出不了small,这里big和small都是一样的操
  8. 中文代码编写php,PHP开发网站代码编写规范
  9. [导入]Mobile Media API概述
  10. 学云计算需要准备哪些知识?
  11. python_day10のPython操作 RabbitMQ、Redis、Memcache
  12. ffmpeg中tbr tbc tbn的含义解释
  13. 微信公众号扫一扫功能vue配置
  14. 微信屏蔽网页的依据是什么?
  15. 键盘·由于其配置信息(注册表中的)不完整或已损坏,Windows 无法启动这个硬件设备。 (代码19)
  16. python组合求和-近似值
  17. 批量重命名文件中的照片
  18. OpenStack-国基北盛搭建,跑脚本安装各组件步骤详解
  19. dell r630 配置raid_DELL服务器硬件 配置RAID磁盘阵列 iDRAC配置
  20. i3 10100性能参数 i310100怎么样

热门文章

  1. Flume数据传输事务分析[转]
  2. 不可不知的Oracle常用技巧
  3. 多语言制作工具(2013-01-24更新,支持VS2005、2008、2010、2012)(已开源)
  4. Vue 下拉刷新及无限加载组件 - 有你便是晴天 - 博客园
  5. koa --- seesion实现登录鉴权
  6. POJ 3608 Bridge Across Islands 《挑战程序设计竞赛》
  7. angularAMD快速入门
  8. java web过滤器
  9. Mozilla 放出新的 Firefox 3.5 RC 版本(RC 3)
  10. 创建一个最简单的imgui测试用例