GOPATH和GOROOT

环境变量

  • GOROOT golang安装路径 包含golang源码和它们的二进制文件
  • GOPATH 工作目录

查看安装之后的环境变量

[email protected]:~# go env
GOPATH=""
GOROOT="/usr/lib/go-1.6"

设置环境变量

mkdir -p /home/Projects/Go  //创建工作目录

vim ~/.bashrc               //编辑此文件 并添加如下代码

GOPATH=/Home/Projects/Go
export GOPATH
PATH=$PATH:$GOPATH/bin # Add GOPATH/bin to PATH for scripting

source ~/.bashrc            //生效配置

再次查看环境变量

[email protected]:~# go env
GOPATH="/Home/Projects/Go"
GOROOT="/usr/lib/go-1.6"

创建自己的应用包

mkdir -p $GOPATH/src/Hello //创建文件夹
cd $GOPATH/src/Hello    //进入到目录
vim Hello.go            //创建hello文件

package Hello
import "fmt"
func Say(){
    fmt.Println("hello world")
}
  • 这里需要大写

编译应用

编译之前的目录

[email protected]:/Home/Projects/Go# tree
.
└── src
    └── Hello
        └── Hello.go

编译一个不存在的包

[email protected]:/Home/Projects/Go# go install test
can‘t load package: package test: cannot find package "test" in any of:
    /usr/lib/go-1.6/src/test (from $GOROOT)
    /Home/Projects/Go/src/test (from $GOPATH)
  • 这里可以看到默认会从GOROOT和GOPATH 找相对应的包

编译

go build Hello

查看编译后的目录

[email protected]:/Home/Projects# tree
.
└── Go
    ├── pkg
    │   └── linux_amd64
    │       └── Hello.a
    └── src
        └── Hello
            └── Hello.go

5 directories, 2 files
  • 这里可以看到有一个pkg目录,下面有一个hello.a文件

创建主文件并引用刚才创建的包文件

mkdir main
vim main.go

package main

import "Hello"

func main(){
   Hello.Say();
}

编译程序并查看

go build

[email protected]:/Home/Projects/Go# tree
.
├── pkg
│   └── linux_amd64
│       └── Hello.a
└── src
    ├── Hello
    │   └── Hello.go
    └── main
        ├── main
        └── main.go
        
  • 这里多了一个main文件夹就是可执行文件

执行可执行文件

[email protected]:/Home/Projects/Go/src/main# ./main
hello world

安装应用并查看

[email protected]:/Home/Projects/Go/src/main# go install

[email protected]:/Home/Projects/Go# tree
.
├── bin
│   └── main
├── pkg
│   └── linux_amd64
│       └── Hello.a
└── src
    ├── Hello
    │   └── Hello.go
    └── main
        └── main.go
  • 可以看到 多了一个bin目录 且目录下面有一个main文件

执行应用

[email protected]:/# main
hello world

原文地址:https://www.cnblogs.com/alin-qu/p/8541197.html

时间: 2025-02-01 08:50:18

GOPATH和GOROOT的相关文章

关于GOPATH和GOROOT的区别

最近在研究用godep来管理golang的依赖包,遇到以下问题: 项目中对自己编辑的其他包有依赖,且该依赖包和main包处于同一目录中,这样在执行godep save的时候只能生成想github.com这样的依赖包. 经分析发现:我一般都是把自己编写的包放到GOROOT下,这样go编译器就会认为我所编辑的包是系统包,进而不会把我编辑的包放到Godep.json中,将我自己编辑的包放到GOPATH/src下就可以了. 语言不是特别通顺,仅作为自己记录,有问题可找我进行讨论

Can not import $GOPATH package on Intellij Idea

最近新买了电脑重新安装了一遍软件,真是够麻烦的.以后服务器还是用docker来玩吧 要不换个服务器,还真是得累死. 在重装的过程中遇到了一个问题 Can not import $GOPATH package on Intellij Idea 以前解决过 但是没有记录 导致我这回又折腾了好一会才能好 所以还是记录一下吧 首先Go 的环境自己安装好 Goroot Gopath一个都不能少,这里就不说如何安装Go了 网上大把的教程 我分别针对以下几种情况给出对应的解决方法 基本上是囊括了所有Gopat

windows下gopath设置

下载了go语言的安装包, 然后安装, 装完了需要设置三个地方: 1. 在windows的PATH变量中添加go的可执行文件所在的目录: [javascript] view plaincopy PATH=C:\Go\bin;其他设置; 2. 设置 GOROOT , 这个好理解, 直接设置成 C:\Go 即可 [javascript] view plaincopy GOROOT=C:\Go 3. 设置GOPATH, 这个很难理解, 我的尝试: [python] view plaincopy GOPA

golang 的GOPATH设置的问题

go run footer.go 的时候呢, go会依次去GOPATH 和GOROOT设置的对应路径下面找对应的包(目录和文件) 找的时候呢, 会在GoPATH 和GOROOT对应的目录后面再加一层路径 "/src/"哦 --------------------------------------------------------------------------------------------- https://stackoverflow.com/questions/3211

gopath 设置问题

实际上GOPATH, 可以是一个目录的列表, 在windows环境变量里设置的时候, 多个目录使用分号(;)隔开, 在linux里多个目录使用冒号(:)隔开, 组合的一个字符串. GOPATH是一些列用于go来查找包的目录列表. 使用import "包名" 的时候, 如果在 GOROOT里找不到, 应该会转向到你的GOPATH里去寻找. 不让GOPATH和GOROOT环境变量的值设置为同一个目录, 可能是因为不想你新安装的包, 污染了核心go的pkg和src文件.

安装go语言环境

一.基础环境 1.cat /etc/debian_version  7.8 2.uname -r 3.2.0-4-amd64 3.ip(eth0) 10.1.10.117 4.go版本 go1.4.linux-amd64.tar.gz 5.官网 https://golang.org/ 二.安装二进制go 1.下载 axel -n 10 http://www.golangtc.com/static/go/go1.4.linux-amd64.tar.gz 2.解压 tar zxvf go1.4.li

Go语言环境安装详细介绍

工具链介绍 go有两套编译工具链,分别是从plant9移植过来的gc和依赖gcc的gccgo. 官方为gc工具链提供了二进制安装包和源码, 可以根据需要选择一种安装方式.gc工具链对操作系统和CPU类型的支持情况如下: 操作系统 CPU类型 备注 FreeBSD 8 or later amd64, 386, arm Debian GNU/kFreeBSD not supported; FreeBSD/ARM needs FreeBSD 10 or later Linux 2.6.23 or la

PyCharm Golang开发环境搭建(最方便快捷的GO语言开发环境)

IntelliJ太牛了.为了配置Go语言开发环境,折腾了半天,下IDE(Sublime Text,IntelliJ Idea),然后装Go插件.装Go插件还要下载插件项目源码,编译等等,Sublime还要输入python脚本,粘进去通不过,头疼. 突然悟出一个道理,如果你觉得当前手上的事情变得非常痛苦的时候,不是事情本身的问题,是你没找到好的解决方法的问题,或者说,“不是事情太痛苦,是你太笨了”. 在不停的装插件,尝试过程中,突然发现,PyCharm跟Idea一样,也是支持Go插件的,立马悟到,

Mac下go语言goclipse插件安装部署

Try using this URL as a Eclipse Software Site:https://raw.githubusercontent.com/GoClipse/goclipse.github.io/0.16.0/releases/ It should allow you to install 0.16.0 (or a diff version if you change the URL) 地址:http://stackoverflow.com/questions/3922819