gpt4 book ai didi

Go 实现一次性打包各个平台的可执行程序

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 28 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Go 实现一次性打包各个平台的可执行程序由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

第一步:

安装插件 。

$ go get github.com/mitchellh/gox 。

第二步:

打包(必须 CD 到Golang 的 Main 文件所在的路径) 。

这种打包方式有弊端就是都放在了根目录下.而且文件名也改了,

$ gox 。

分别放在不同的文件夹

$ gox -output "{{.Dir}}_{{.OS}}_{{.Arch}}/swbatch" 。

第三步:

根据需求打包出不同平台的可执行程序 。

只想打 Linux 系统下的可执行程序

$ gox -os="linux" 。

只想打 Linux Bit64 系统下的可执行程序

$ gox -osarch="linux/amd64" 。

Mac 下打包 Linux 环境下运行的程序 。

$ env GOOS=linux GOARCH=386 go build main.go 。

补充:GO 编译 打包 部署 。

进入到 /data/workspace_go/github.com/freewebsys/go-admin下 。

执行 bee pack -be GOOS=linux 。

自动生成 二进制 GOODS linux GOARCH amd64 。

自动生成 go-admin.tar.gz, 放到服务器 /root/go/pkg下面,解压, 。

生成 可执行文件 go-admin、static、views和conf几个文件夹,配置conf文件下的app.conf的端口号,然后 ./go-admin即可启动服务, 但SHELL终端关闭,GO服务也随之关闭,那么如何实现后台运行呢?

nohup ./go-admin 即可!!! 。

nohup ./go-admin 1 > goadmin.out 2 > goerror.err 也可以 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
package main
import (
  "github.com/astaxie/beego"
  "github.com/astaxie/beego/context"
  "github.com/astaxie/beego/logs"
  "github.com/astaxie/beego/orm"
  _ "github.com/freewebsys/go-admin/routers"
  _ "github.com/go-sql-driver/mysql"
  _ "github.com/mattn/go-sqlite3"
)
 
func main() {
  //注册sqlite3
  // orm.RegisterDataBase("default", "sqlite3", "go-admin.db")
  orm.RegisterDriver("mysql", orm.DRMySQL) //注册驱动      
 
//注册默认数据库 (test数据库提前建好)
  orm.RegisterDataBase("default", "mysql", "root:123456@/test?charset=utf8", 30, 30)
  //同步 ORM 对象和数据库
  //这时, 在你重启应用的时候, beego 便会自动帮你创建数据库表。
  orm.Debug = true
  orm.RunSyncdb("default", false, true)
  //增加拦截器。
  var filterAdmin = func(ctx *context.Context) {
  url := ctx.Input.URL()
  logs.Info("##### filter url : %s", url)
  //TODO 如果判断用户未登录。
  }
  beego.InsertFilter("/admin/*", beego.BeforeExec, filterAdmin)
  beego.Run()
}

以上为个人经验,希望能给大家一个参考,也希望大家多多支持我。如有错误或未考虑完全的地方,望不吝赐教.

原文链接:https://blog.csdn.net/jinjianghai/article/details/85293380 。

最后此篇关于Go 实现一次性打包各个平台的可执行程序的文章就讲到这里了,如果你想了解更多关于Go 实现一次性打包各个平台的可执行程序的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com