Go 语言 在线

2788Golang 在 Mac Linux Windows 下交叉编译 非常好用

Golang 在 Mac Linux Windows 下交叉编译 非常好用

Mac 下编译 Linux 和 Windows 64位可执行程序

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

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

Linux 下编译 Mac 和 Windows 64位可执行程序

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

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

Windows 下编译 Mac 和 Linux 64位可执行程序

SET CGO_ENABLED=0

SET GOOS=darwin

SET GOARCH=amd64

go build main.go

SET CGO_ENABLED=0

SET GOOS=linux

SET GOARCH=amd64

go build main.go

GOOS:目标平台的操作系统(darwin、freebsd、linux、windows)

GOARCH:目标平台的体系架构(386、amd64、arm)交叉编译不支持 CGO 所以要禁用它

上面的命令编译 64 位可执行程序

go build  -ldflags "-s -w" -o linuxBbsGo main.go 程序减肥方法

2784Golang 在一个平台下生成另一个平台可执行程序

# go version

go version go1.17.7 linux/amd64

Mac下编译Linux

Windows平台的64位可执行程序

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build test.go

CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go

Linux下编译Mac

Windows平台的64位可执行程序

CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build test.go

CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go

Windows下编译Mac

Linux平台的64位可执行程序

SET CGO_ENABLED=0

SET GOOS=darwin3

SET GOARCH=amd64

go build test.go

SET CGO_ENABLED=0

SET GOOS=linux

SET GOARCH=amd64

go build test.go

GOOS

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

GOARCH

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

2775\"gormgen\": executable file not found in %PATH%

gormgen 代码生成工具生成的API查询和更新gorm结构无需处理 interface {}或数据库列名称

1.安装

git clone github.com/olongfen/gormgen
cd cmd/gormgen/
go build -o gormgen main.go
mv gormgen /usr/local/bin/
2.使用 在结构体模型加对应的注解,//go:generate
// 用户Demo表
//go:generate gormgen -structs User -output user_gen.go
type User struct {
    Id        int32     // 主键
    UserName  string    // 用户名
    Mobile    string    // 手机号
    IsDeleted int32     // 是否删除 1:是  -1:否
   CreatedAt time.Time `gorm:"time"` // 创建时间
    UpdatedAt time.Time `gorm:"time"` // 更新时间
}

3.执行生成命令 go generate ./...

2763centos 安装golang环境

centos 安装golang环境

centos7服务器上安装golang的环境

安装方法一

yum安装简单方便 go版本是最新版本

# yum install golang

若出现没有可用软件包 golang 缺少 EPEL源软件仓库中找不到安装的软件包

先安装一下erel源

# yum install epel-release

安装完成后查看go版本号 成功显示就表示安装成功

# go version

方法二 二进制包安装

安装包在官网可以下载

由于之前安装了go1.16.6所以我下载的是go1.12的包 以进行区分

# wget -P /var/download https://golang.google.cn/dl/go1.16.6.linux-amd64.tar.gz

然后解压到 /usr/local 目录

# tar -zxf /var/download/go1.16.6.linux-amd64.tar.gz -C /usr/local/

# go version

配置环境变量

通过编辑 /etc/profile 文件配置环境变量

# vim /etc/profile

在文件的末尾添加如下代码:

export GOROOT=/usr/local/go

export GOPATH=/mnt/hgfs/go/project

export PATH=$PATH:$GOROOT/bin

# source /etc/profile

其中工作路径为 '/mnt/hgfs/go/project'

即代码放到目录

我用的是vmware

golang的环境就搭建好了

查看环境参数

# go env

2758go语言 第三方库

Golang 文件系统抽象 Afero

Afero 是文件系统框架,提供简单、统一和通用的API 和任何文件系统进行交互,抽象层提供界面、类型和方法 , Afero 界面简洁,设计简单,舍弃不必要的构造函数和初始化方法

Afero 库提供可交互操作的后台文件系统,与 Afero 协作可保留 os 和 ioutil 软件包的功能和好处

比单独用 os 软件包 性能提升显著,创建 mock 和测试文件系统无需依赖于磁盘

单独 API 访问各类文件系统 多种文件系统类型之间可交互互操作

一组接口后端间的交互操作性 原子跨平台存储备份文件系统

不同文件系统组成复合文件系统 httpFs

o, ioutil & hugo 移植实用函数

http://www.oschina.net/p/afero

https://github.com/spf13/afero