设置Linux编译环境
SET CGO_ENABLED=0
set GOARCH=amd64
set GOOS=linux
// 开始编译
go build -o ./build/ ./main.go
在windows10之前的系统版本上使用cmd命令行可以使用上述命令编译
在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
用于标识(声明)程序构建环境的目标计算架构,若不设置,默认值与程序运行环境的目标计算架构一致
系统 | GOOS | GOARCH |
---|---|---|
Windows 32 位 | windows | 386 |
Windows 64 位 | windows | amd64 |
OS X 32 位 | darwin | 386 |
OS X 64 位 | darwin | amd64 |
Linux 32 位 | linux | 386 |
Linux 64 位 | linux | amd64 |
四、GOHOSTOS
用于标识(声明)程序运行环境的目标操作系统
五、GOHOSTARCH
用于标识(声明)程序运行环境的目标计算架构
六、go build
-a-installsuffix-o
//修改权限命令
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 … ] [ & ]
- 无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。
- 如果当前目录的 nohup.out 文件不可写,输出重定向到 $HOME/nohup.out 文件中。
- 如果没有文件能创建或打开以用于追加,那么 Command 参数指定的命令不可调用。
- 退出状态:该命令返回下列出口值:
- 126 可以查找但不能调用 Command 参数指定的命令。
- 127 nohup 命令发生错误或不能查找由 Command 参数指定的命令。
- 否则,nohup 命令的退出状态是 Command 参数指定命令的退出状态。
2. &
用途:在后台运行
一般两个一起用
nohup command &
nohup redis-server ./main >/dev/null 2>&1 &
查看运行的后台进程
jobs -l
ps -ef
ps -aux|grep test.js
aux
3. windows上
windows 上面用
go build -ldflags "-s -w -H=windowsgui"
- -s 省略符号表和调试信息
- -w Omit the DWARF symbol table 省略DWARF符号表
- -H windowsgui 不打印信息到console (On Windows, -H windowsgui writes a "GUI binary" instead of a "console binary."),就不会有cmd窗口了
curl发送参数名字username 和pwd 是页面定义的两个参数名字,form1 是页面定义的表单的名字。
curl -d "username=test&pwd=123456" http://serverIP/webAuth/index.htm/form1
图片及部分相关技术知识点来源于网络搜索,侵权删!