Loading...

#0x00
一般语言没有规定项目目录结构,但golang有规定,这样可以保证一致性。
#0x01
Golang提供两个关键路径:

  • GOROOT指向GO的安装路径
  • GOPATH指向项目路径

一般GO安装好后GOROOT会自动指向安装路径,所以一般不需要动。除非你安装了几个不同版本的GO,GOROOT设置为指定版本的路径即可。

GOPATH指向的项目目录目录结构:

项目目录 <-GOPATH指向的路径 ├─bin <-编译后的可以执行文件存放的位置 ├─pkg <-编译的中间文件存放位置 └─src <-项目源代码存放位置 ├─项目 <-项目源代码存放位置 └─vendor <-第三方开源代码存放位置

一般只需要创建srcbin pkg编译时会自动创建。

//指定GOPATH: //windows set GOPATH=项目目录路径 //Linux export GOPATH=项目目录路径

假如项目名为test,使用go install test进行编译
其项目文件结构:

. ├─bin <-bin目录会自动生成 | └─test <-编译后的可执行文件 └─src └─test ├─main.go <-作为入口,必须命名为main.go └─Hello <-文件夹名随意 └─hello.go <-文件名随意
//main.go package main //项目目录根目录和main.go的包名都为main import ( "test/Hello" //指定目录 ) func main() { Hello.Hello() //调用Hello目录的hello.go中的Hello()函数 }
//hello.go package Hello //包名为该文件所在的目录名 import "fmt" func Hello() { //被跨目录调用的函数名首字母需要大写 fmt.Println("hello!!!") }

#0x02
快捷编译脚本,将脚本放在项目目录根目录下(src同目录下):

//install.sh #!/usr/bin/env bash if [ ! -f install ]; then echo 'install must be run within its container folder' 1>&2 exit 1 fi CURDIR=`pwd` OLDGOPATH="$GOPATH" export GOPATH="$CURDIR" gofmt -w src go install test export GOPATH="$OLDGOPATH" echo 'finished'
//install.bat @echo off setlocal if exist install.bat goto ok echo install.bat must be run from its folder goto end : ok set OLDGOPATH=%GOPATH% set GOPATH=%~dp0 gofmt -w src go install test :end echo finished
Last modification:October 24, 2019
如果觉得我的文章对你有用,请随意赞赏