Golang

关注公众号 jb51net

关闭
首页 > 脚本专栏 > Golang > Golang 跨平台交叉编译

Golang交叉编译之跨平台编译使用详解

作者:微客鸟窝

这篇文章主要为大家介绍了Golang交叉编译之跨平台编译使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

在CMD命令行中编译

设置Linux编译环境

SET CGO_ENABLED=0
set GOARCH=amd64
set GOOS=linux
//CGO_ENABLED=0 GOOS=linux GOARCH=arm GOARM=7
// 开始编译
go build -o ./build/ ./main.go
在windows10之前的系统版本上使用cmd命令行可以使用上述命令编译

powershell命令行中

在powershell命令行中编译(示例编译64位linux程序)

// 设置Linux编译环境
$env:CGO_ENABLED="0"
$env:GOOS="linux"
$env:GOARCH="amd64"
// 开始编译
go build -o ./build/ ./main.go

一、CGO_ENABLED

作用:

用于标识(声明) cgo 工具是否可用

意义:

存在交叉编译的情况时,cgo 工具是不可用的。在标准 go 命令的上下文环境中,交叉编译意味着程序构建环境的目标计算架构的标识与程序运行环境的目标计算架构的标识不同,或者程序构建环境的目标操作系统的标识与程序运行环境的目标操作系统的标识不同

关闭 cgo 后,在构建过程中会忽略 cgo 并静态链接所有的依赖库,而开启 cgo 后,方式将转为动态链接

二、GOOS

用于标识(声明)程序构建环境的目标操作系统

如:linux 、windows

三、GOARCH

用于标识(声明)程序构建环境的目标计算架构,若不设置,默认值与程序运行环境的目标计算架构一致

系统GOOSGOARCH
Windows 32 位windows386
Windows 64 位windowsamd64
OS X 32 位darwin386
OS X 64 位darwinamd64
Linux 32 位linux386
Linux 64 位linuxamd64

四、GOHOSTOS

用于标识(声明)程序运行环境的目标操作系统

五、GOHOSTARCH

用于标识(声明)程序运行环境的目标计算架构

六、go build

后台运行

//修改权限命令
chmod 777 程序名称
//后台运行的命令
nohup ./程序名 & 
//不输出错误信息
nohup ./程序名 >/dev/null 2>&1 &
//如果要关闭程序,可以使用命令”ps” 查看后台程序的pid,然后使用“kill 程序pid”命令,关闭程序比如程序名为test,可以用如下命令查询
ps aux|grep test
//关掉进程
kill 进程编号
//开机启动glang
vi /etc/rc.local
cd gopath
nohup ./main &

1.nohup

用途:不挂断地运行命令。

语法:nohup Command [ Arg … ] [ & ]

退出状态:该命令返回下列出口值:   

2. &

用途:在后台运行

一般两个一起用

nohup command &

nohup redis-server ./main >/dev/null 2>&1 &

查看运行的后台进程

(1)jobs -l

(2)ps -ef

ps -aux|grep test.js

3. windows上

windows 上面用

go build -ldflags "-s -w -H=windowsgui"

curl 命令测试

curl发送参数名字username 和pwd 是页面定义的两个参数名字,form1 是页面定义的表单的名字。

curl  -d "username=test&pwd=123456"  http://serverIP/webAuth/index.htm/form1

以上就是Golang交叉编译之跨平台编译使用详解的详细内容,更多关于Golang 跨平台交叉编译的资料请关注脚本之家其它相关文章!

您可能感兴趣的文章:
阅读全文