GOROOT、GOPATH理解和常用GO命令解析

本文介绍了GO开发环境中的GOROOT和GOPATH的概念,包括它们的目录结构和作用。GOROOT指向Go开发包的安装位置,而GOPATH则指定了Go工程目录,包含src、pkg和bin子目录。在IDE如GOland中,配置GOPATH可简化代码管理。此外,文章还列举了Go语言的常用命令,如go env、go run、go get等,帮助开发者更好地管理和操作Go源代码。

GOROOT

GOROOT是指向Go开发包的安装目录,官方包路径根据这个设置自动匹配。Windows中的GOROOT在默认安装时已设置好,一般是在c:\Go\中,即GOROOT=c:\Go
在linux环境下,下载Go安装包并解压在/usr/local/目录下,然后把/usr/local/go/bin加入PATH环境变量即可:

#使用命令修改 只是当前有效
export  PATH=$PATH:/usr/local/go/bin
#或者全局变量修改配置 永久生效
#/etc/profile  对全局生效
vim ~/.bash_profile     #仅对该用户生效
#编辑文件 加入以下
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin

关于linux环境变量配置详解 https://www.cnblogs.com/lbg-database/p/10109957.html

GOPATH

GOPATH是指定了Go工程目录,包含src,pkg、bin三个子目录。当使用 go get命令下载Go第三方程序包时,会自动安装到GOPATH/src下面。为了方便,需要设置$GOPATH/bin到环境变量之中。

#直接命令设置 当前会话有效
export $GOPATH=mypath/go/
export PATH=$PATH:$GOPATH/bin

GO中是没有项目这个概念,只有包概念。可执行包只是特殊的一种包,类似我们常说的项目,GOPATH可以设置多个,不管是可执行包,还是非可执行包,通通都应该$GOPATH/src下面。可以根据开发需要,设置多个GOPATH路径,当我们导入一个包xxx时

import(
    "zfw/struct/tree/node"
)

go系统会优先在$GOROOT/src中寻找,若是找不到,再去GOPATH/src中寻找该引入的包。
GOPATH目录结构
GOPATH目录结构

IDE中配置代码自动化(GOland编辑器无需配置)

go imports可以进行代码导入的配置,整理import的工具
go imports
需要使用命令下载 goimports
在这里插入图片描述正常环境(墙外)使用命令:

go get golang.org/x/tools/cmd/goimports

墙内需要使用gopm获取无法下载的包,gopm国内镜像

#注意需要提前安装好 git 因为go get命名依赖git从github.com中下载包
go get -v github.com/gpmgo/gopm 

src 下面有gopm的源码包,在bin下面有gopm的可执行文件
gopm源码包
gopm执行文件

#gppm get help 命令帮助
gopm get -g -v -u golang.org/x/tools/cmd/goimports

goimports源码包
goimports源码包拉下来之后 需要go install

go install golang.org/x/tools/cmd/goimports

gopm执行包

GO常用命令

Go is a tool for managing Go source code.

Usage:

    go <command> [arguments]

The commands are:

    bug         start a bug report
    build       compile packages and dependencies
    clean       remove object files and cached files
    doc         show documentation for package or symbol
    env         print Go environment information
    fix         update packages to use new APIs
    fmt         gofmt (reformat) package sources
    generate    generate Go files by processing source
    get         download and install packages and dependencies
    install     compile and install packages and dependencies
    list        list packages or modules
    mod         module maintenance
    run         compile and run Go program
    test        test packages
    tool        run specified go tool
    version     print Go version
    vet         report likely mistakes in packages

Use "go help " for more information about a command.

Additional help topics:

   buildmode   build modes
    c           calling between Go and C
    cache       build and test caching
    environment environment variables
    filetype    file types
    go.mod      the go.mod file
    gopath      GOPATH environment variable
    gopath-get  legacy GOPATH go get
    goproxy     module proxy protocol
    importpath  import path syntax
    modules     modules, module versions, and more
    module-get  module-aware go get
    packages    package lists and patterns
    testflag    testing flags
    testfunc    testing functions

Use "go help " for more information about that topic.

  • go env 用于打印Go语言的环境信息
  • go run 可以编译并运行源码文件
  • go get 根据要求和实际情况下载或更新指定的代码包及其依赖包,并对它们进行编译和安装
  • go build 用于编译我们指定的源码文件或代码包以及它们的依赖包
  • go install 用于编译&安装指定的代码包及它们的依赖包
  • go clean 会删除掉执行其它命令时产生的一些文件和目录
  • go doc 可以打印附于Go语言程序实体上的文档,通过把程序实体的标识符作为该命令的参数来达到查看其文档的目的
  • go test 对Go语言编写的程序进行测试
  • go list 作用是列出指定的代码包的信息
  • go fix 会把指定代码包的所有Go语言源码文件中的旧版本代码修正为新版本的代码
  • go vet是一个用于检查Go语言源码中静态错误的简单工具。
  • go tool pprof 用来交互式的访问概要文件的内容

install src下面所有包

 go install ./...

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值