Golang 支持交叉编译,在一个平台上生成另一个平台的可执行程序。
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 所以要禁用它
beego框架使用bee交叉编译linux执行文件命令
bee pack -be GOOS=linux -be GOARCH=amd64
最近写了个emlog火车头发布模块,测试发布模块时提示权限不足 token error
golang默认使用的编码是utf-8
在使用goquery爬取页面编码是gbk时,出现乱码问题
使用BeeGo2.0 编译后 打包上传到服务器出现
panic: err: go command required, not found: exec: "go": executable file not found in $PATH: stderr:
解决方法
吧app.conf配置文件开发环境改为生产环境就行了
runmode = prod
再也不用苦苦的转换成map[string]interface{}
GJSON是一个Go包,它提供了一种快速,简单的方法来从json文档中获取值。它具有诸如单行检索,点符号路径,迭代和解析json行之类的功能。
package main
import "github.com/tidwall/gjson"
const json = `{"name":{"first":"Janet","last":"Prichard"},"age":47}`
func main() {
value := gjson.Get(json, "name.last")
println(value.String())
}
打印:
Prichard
需求
http://www.52bd.net/article/view.aspx?id=9999
跳转到
http://www.52bd.net/t-9999-1-1.html
location /article/{
set $zdy_id $arg_id;
rewrite ^/article/(.*)$ http://$server_name/t-$zdy_id-1-1.html? permanent;
}