Skip to content

Latest commit

 

History

History
191 lines (138 loc) · 4.29 KB

File metadata and controls

191 lines (138 loc) · 4.29 KB

[TOC]

git快速入门指南

安装配置

类linux 配置 go

有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 .zshrcsource .bashrc

mac

  1. 安装 brew install go
  2. 如果 goland 编辑器 无法调试 https://developer.apple.com/download/more/ 下载 Command Line tools(macoS 10.13) for Xcode 9.1

import 用法

出现undefined 错误

设置编辑器用 包的形式编译 或者 指定需要的包 go run main.go hub.go

_(下划线) 用法,初始化 init 函数

import (
	_ "./show2"  //只调用 show2包的 init() 函数 包中的其他方法不可调用
)

工作目录最好是在src 中创建项目

这样自定义包可以编辑器可以识别并导入

package 包说明

  1. 在同一个目录只能由一个main包,即开头为package main,不然编译会报错
  2. 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()
}

变量可见性规则

  1. 大写字母开头的变量是可导出的,也就是其它包可以读取的,是公用变量
  2. 小写字母开头的就是不可导出的,是私有变量。

常用命令

  1. go build : 用于编译源码文件、代码包、依赖包
  2. go run : 可以编译并运行Go源码文件
a :  强制编译相关代码,不论它们的编译结果是否已是最新的
n :  打印编译过程中所需运行的命令,但不真正执行它们
p n: 并行编译,其中n为并行的数量,为cpu 核数
  1. go get -v : 命令主要是用来动态获取远程代码包的 eg: go get -v http://xxxxx/test.go 注意: go get 下载的文件是放在 GOPATH中 可通过 go env | grep GOPATH 查看 可在goLand中设置全局和项目的的 GOPATH
-d : 只执行下载动作,而不执行安装动作
-fix : 在下载代码包后先执行修正动作,而后再进行编译和安装
-u : 利用网络来更新已有的代码包及其依赖包
  1. go install ./模块名 可编译出一个存在 src同级的 bin 目录下的执行命令

初始化模块的函数 init

如某个目录下有 多个*.go 文件, 在引入xxx/model 时 每个文件的 func init() 都会执行

go get 如何下载太慢

  1. 先通过 go get github.com/go-sql-driver/mysql 生成目录即可
  2. 在目录下 使用git clone https://github.com/go-sql-driver/mysql 下载代码,注意,此时,目录为需上移动 2.5 如果有些需要执行命令 如goimports,则go install golang.org/x/tools/cmd/goimports
  3. 在自己项目中 直接import 路径即可

程序从后台运行,不出现dos窗口

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)

自动编译linux 和window 的多个文件

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 ../