利用Go怎么打包各个平台的可执行程序-创新互联
这篇文章给大家介绍利用Go怎么打包各个平台的可执行程序,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
创新互联从2013年开始,先为鄯善等服务建站,鄯善等地企业,进行企业商务咨询服务。为鄯善企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。第一步:
安装插件
$ 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 也可以
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() }
关于利用Go怎么打包各个平台的可执行程序就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
网站名称:利用Go怎么打包各个平台的可执行程序-创新互联
网站链接:http://pwwzsj.com/article/hiooo.html