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
Windows 下编译 Mac 和 Linux 64位可执行程序
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build main.go
SET GOOS=linux
GOOS:目标平台的操作系统(darwin、freebsd、linux、windows)
GOARCH:目标平台的体系架构(386、amd64、arm)交叉编译不支持 CGO 所以要禁用它
上面的命令编译 64 位可执行程序
go build -ldflags "-s -w" -o linuxBbsGo main.go 程序减肥方法
# 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
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build test.go
Windows下编译Mac
Linux平台的64位可执行程序
SET GOOS=darwin3
go build test.go
GOOS
目标可执行程序运行操作系统 支持 darwin freebsd linux windows
GOARCH
目标可执行程序操作系统构架 包括 386 amd64 arm
gormgen 代码生成工具生成的API查询和更新gorm结构无需处理 interface {}或数据库列名称
1.安装
git clone github.com/olongfen/gormgencd cmd/gormgen/go build -o gormgen main.gomv gormgen /usr/local/bin/2.使用 在结构体模型加对应的注解,//go:generate// 用户Demo表//go:generate gormgen -structs User -output user_gen.gotype 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 ./...
centos 安装golang环境
centos7服务器上安装golang的环境
安装方法一
yum安装简单方便 go版本是最新版本
# yum install golang
若出现没有可用软件包 golang 缺少 EPEL源软件仓库中找不到安装的软件包
先安装一下erel源
# yum install epel-release
安装完成后查看go版本号 成功显示就表示安装成功
方法二 二进制包安装
安装包在官网可以下载
由于之前安装了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/
配置环境变量
通过编辑 /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
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
感谢您的支持,我会继续努力的!
支付宝扫一扫,即可进行扫码打赏哦
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