• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    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 也可以

    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()
    }
    

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

    您可能感兴趣的文章:
    • Golang之casbin权限管理的实现
    • MongoDB 3.6版本中bind_ip设置详解
    • go install/build生成的文件命名和路径操作
    • 解决go 生成的exe不在bin文件夹里的问题
    上一篇:go install/build生成的文件命名和路径操作
    下一篇:解决go 生成的exe不在bin文件夹里的问题
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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