[TOC]
有4个环境变量需要设置: GOROOT、 GOPATH、 GOBIN,以及PATH
需要设置到某一个 profile文件中(~/bash_ profile或/etc/ profile)
export GOROOT=/usr/local/go
export GOBIN=$GOROOT/bin
export PATH=$PATH:$GOBIN
export GOPATH=/var/opt/wwwroot/goblin
添加到对应的profile 配置文件中
eg:
source .zshrc 或source .bashrc
- 安装
brew install go - 如果 goland 编辑器 无法调试
https://developer.apple.com/download/more/下载Command Line tools(macoS 10.13) for Xcode 9.1
设置编辑器用 包的形式编译
或者 指定需要的包
go run main.go hub.go
import (
_ "./show2" //只调用 show2包的 init() 函数 包中的其他方法不可调用
)
这样自定义包可以编辑器可以识别并导入
- 在同一个目录只能由一个
main包,即开头为package main,不然编译会报错 package的包名 最好与目录名相同 eg: test 目录下则包名为package test
├── learn1
│ └── learn1.go
├── show2
│ └── show2.go
└── main.go
show2.go 中内容
package show2
import "fmt"
func init() {
fmt.Print("my name is show2")
}
func Show2(){}
导入 包
import (
"./show2" //可使用相对路径
)
//main(函数
func main() {
show2.Show2()
}
- 大写字母开头的变量是可导出的,也就是其它包可以读取的,是公用变量
- 小写字母开头的就是不可导出的,是私有变量。
go build: 用于编译源码文件、代码包、依赖包go run: 可以编译并运行Go源码文件
a : 强制编译相关代码,不论它们的编译结果是否已是最新的
n : 打印编译过程中所需运行的命令,但不真正执行它们
p n: 并行编译,其中n为并行的数量,为cpu 核数
go get -v: 命令主要是用来动态获取远程代码包的 eg:go get -v http://xxxxx/test.go注意:go get下载的文件是放在GOPATH中 可通过go env | grep GOPATH查看 可在goLand中设置全局和项目的的GOPATH
-d : 只执行下载动作,而不执行安装动作
-fix : 在下载代码包后先执行修正动作,而后再进行编译和安装
-u : 利用网络来更新已有的代码包及其依赖包
go install ./模块名可编译出一个存在 src同级的 bin 目录下的执行命令
如某个目录下有 多个*.go 文件,
在引入xxx/model 时
每个文件的 func init() 都会执行
- 先通过
go get github.com/go-sql-driver/mysql生成目录即可 - 在目录下 使用
git clone https://github.com/go-sql-driver/mysql下载代码,注意,此时,目录为需上移动 2.5 如果有些需要执行命令 如goimports,则go install golang.org/x/tools/cmd/goimports - 在自己项目中 直接
import路径即可
go build -ldflags "-H windowsgui
文件为当前目录对应的文件
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)
SET GOOS=linux
go build antbiz.go
cd proxy
go build antzoo.go
cd ../
SET GOOS=windows
go build antbiz.go
cd proxy
go build antzoo.go
cd ../