张洋铭 發表於 2023-1-28 17:48:00

go 环境搭建

<h2 id="sdk下载">SDK下载</h2>
<p>下载地址:</p>
<p>https://golang.google.cn/dl/</p>
<p>https://studygolang.com/dl</p>
<p>这两个那个下载快 用那个 都是镜像,官网被墙了(你懂得)官网地址</p>
<p>https://golang.org/dl/</p>
<p>然后下载对应平台的安装包,例如我这里就是 <code>win</code>平台</p>
<p><img src="https://img2023.cnblogs.com/blog/1652001/202301/1652001-20230128174637834-998140786.png" alt="image-20230128103218604" loading="lazy"></p>
<h2 id="安装">安装</h2>
<p>下载完成后,双击安装包,一路下一步即可,这里使用的是<code>1.19.5</code>版本</p>
<p><img src="https://img2023.cnblogs.com/blog/1652001/202301/1652001-20230128174637778-1277119896.png" alt="image-20230128103949735" loading="lazy"></p>
<p><img src="https://img2023.cnblogs.com/blog/1652001/202301/1652001-20230128174637708-577570224.png" alt="image-20230128104034954" loading="lazy"></p>
<p><img src="https://img2023.cnblogs.com/blog/1652001/202301/1652001-20230128174637808-654701038.png" alt="image-20230128104056945" loading="lazy"></p>
<p>设置安装位置</p>
<p><img src="https://img2023.cnblogs.com/blog/1652001/202301/1652001-20230128174637764-1146649271.png" alt="image-20230128104211672" loading="lazy"></p>
<p><img src="https://img2023.cnblogs.com/blog/1652001/202301/1652001-20230128174637841-1913201271.png" alt="image-20230128104238224" loading="lazy"></p>
<p><img src="https://img2023.cnblogs.com/blog/1652001/202301/1652001-20230128174637711-720106512.png" alt="image-20230128104253747" loading="lazy"></p>
<h2 id="测试是否安装成功">测试是否安装成功</h2>
<p>打开<code>cmd</code>,执行<code>go env</code> 或者 <code>go version</code></p>
<p>像这样表示安装成功</p>
<p><img src="https://img2023.cnblogs.com/blog/1652001/202301/1652001-20230128174637674-1501223154.png" alt="image-20230128104533632" loading="lazy"></p>
<h2 id="环境变量的配置">环境变量的配置</h2>
<h3 id="path变量">PATH变量</h3>
<p>这个配置,跟配置<code>Java</code>环境时一样,是为了能够全局找到go 的命令</p>
<p>其实 我们这里 上面<code>不应该</code> 能直接正常识别 <code>go</code> 的命令的 ,应该是找不到命令,为啥这里能找到呢 ,应该是go 安装的时候 已经给你设置了,找一下看看</p>
<p><img src="https://img2023.cnblogs.com/blog/1652001/202301/1652001-20230128174637822-1604283126.gif" alt="设置环境变量" loading="lazy"></p>
<p>这是 <code>GOPATH</code> 给你设置了一个,但这个明显不是我们的安装路径,那就是<code>path</code>里面,果然如此,这里安装的时候已经帮我们设置了,如果没有设置则需要自己设置</p>
<p><img src="https://img2023.cnblogs.com/blog/1652001/202301/1652001-20230128174637744-53673648.png" alt="image-20230128105610040" loading="lazy"></p>
<h3 id="gopath含义">GOPATH含义</h3>
<p>参考:https://blog.csdn.net/weixin_42322206/article/details/128341595</p>
<p>GOPATH 是 Go 语言中使用的一个环境变量,它使用绝对路径提供项目的<strong>工作目录(</strong>也称为<strong>工作区),</strong> 是存放 Golang 项目代码的文件路径, GOPATH 适合处理大量 Go语言源码、多个包组合而成的复杂工程。</p>
<p>工作目录是一个工程开发的相对参考目录,好比当你要在公司编写一套服务器代码,你的工位所包含的桌面、计算机及椅子就是你的工作区。</p>
<p>工作区的概念与工作目录的概念也是类似的。如果不使用工作目录的概念,在多人开发时,每个人有一套自己的目录结构,读取配置文件的位置不统一</p>
<p><img src="https://img2023.cnblogs.com/blog/1652001/202301/1652001-20230128174637803-231343687.png" alt="img" loading="lazy"></p>
<p>GOPATH目录一般为:</p>
<pre><code>1、bin 存放编译生成的二进制文件。比如 执行命令 go get github.com/google/gops,bin目录会生成 gops 的二进制文件。

2、pkg 其中pkg下面以下三个文件夹。

XX_amd64: 其中 XX 是目标操作系统,比如 mac 系统对应的是darwin_amd64, linux 系统对应的是 linux_amd64,存放的是.a结尾的文件。
mod: 当开启go Modules 模式下,go get命令缓存下依赖包存放的位置
sumdb: go get命令缓存下载的checksum数据存放的位
3、src 存放golang项目代码的位置
</code></pre>
<p><img src="https://img2023.cnblogs.com/blog/1652001/202301/1652001-20230128174637855-1107570044.png" alt="image-20220409140546638" loading="lazy"></p>
<h3 id="设置gopath">设置GOPATH</h3>
<p>安装完成后,go 给你设置的默认的,我们这里改成自己的,找到 <code>GOPATH</code> 环境变量,这里我们把 用户变量和系统变量都设置下</p>
<p><img src="https://img2023.cnblogs.com/blog/1652001/202301/1652001-20230128174637833-466738201.png" alt="image-20230128114229794" loading="lazy"></p>
<h3 id="设置代理goproxy-和-go111module">设置代理GOPROXY 和 GO111MODULE</h3>
<p>众所周知的原因,国内被墙,所以需要设置镜像源,跟npm 设置国内镜像一样的道理,对应的设置</p>
<ul>
<li>GOPROXY                                   -&gt;                代理地址</li>
<li>GO111MODULE          -&gt;      是否开启 go mod</li>
</ul>
<p>这里提供两个代理:</p>
<p>https://goproxy.cn/</p>
<p>https://golang.com.cn/proxy</p>
<h4 id="设置代理相关的环境变量">设置代理相关的环境变量</h4>
<p>为了代理长期生效。添加环境变量:</p>
<p>GO111MODULE:on</p>
<p>GOPROXY:https://goproxy.cn</p>
<p><img src="https://img2023.cnblogs.com/blog/1652001/202301/1652001-20230128174637810-638858254.png" alt="image-20230128143322498" loading="lazy"></p>
<h2 id="go-env-命令">go env 命令</h2>
<p>使用 <code>go env</code> 命令可以查看我们刚才的设置,例:</p>
<p><img src="https://img2023.cnblogs.com/blog/1652001/202301/1652001-20230128174637862-1450190564.png" alt="image-20230128143649279" loading="lazy"></p>
<h2 id="工作空间目录结构">工作空间目录结构</h2>
<pre><code>goWorkSpace   // goWorkSpace为GOPATH目录
-- bin
   -- myApp1// 编译生成
   -- myApp2// 编译生成
   -- myApp3// 编译生成
-- pkg
-- src
   -- common 1
   -- common 2
   -- common utils ...
   -- myApp1   // project1
      -- models
      -- controllers
      -- others
      -- main.go
   -- myApp2   // project2
      -- models
      -- controllers
      -- others
      -- main.go
   -- myApp3   // project3
      -- models
      -- controllers
      -- others
      -- main.go
</code></pre>
<p>既然已经有了规范,那我们按照规范来</p>
<p>现在 在我们再工作目录,也就是GOPATH 目录新建</p>
<pre><code>src:存放源代码的目录

pkg:编译过后生成的包文件存放目录

bin:编译后生产的可执行文件和go相关的工具,都在此目录
</code></pre>
<p><img src="https://img2023.cnblogs.com/blog/1652001/202301/1652001-20230128174637702-693532794.png" alt="image-20230128150402452" loading="lazy"></p>
<p>  </p>
<h2 id="配置vscode--安装-go-插件">配置vscode安装 go 插件</h2>
<h3 id="安装-go-插件">安装 go 插件</h3>
<p>启动<code>vscode</code>选择插件-&gt;搜<code>go</code>选择<code>Go for Visual Studio Code</code>插件点击安装即可。如图</p>
<p><img src="https://img2023.cnblogs.com/blog/1652001/202301/1652001-20230128174637836-823713811.png" alt="image-20230128144412072" loading="lazy"></p>
<h3 id="配置golang辅助工具">配置golang辅助工具</h3>
<p>使用快捷键:Ctrl+Shift+P 输入Go:Install/Update Tools,选择全都要,<strong>但是注意,如果没有配置代理,会安装失败</strong><br>
<strong>注意:要用vscode,打开设置的GOPATH路径进行安装</strong></p>
<p><img src="https://img2023.cnblogs.com/blog/1652001/202301/1652001-20230128174637791-1489439120.png" alt="image-20230128144831296" loading="lazy"></p>
<p><img src="https://img2023.cnblogs.com/blog/1652001/202301/1652001-20230128174637768-896533722.png" alt="image-20230128145109261" loading="lazy"></p>
<p>这时候你如果在看其他人的文档,有时候会发现别人的插件巨多,而你只有七个不是因为<code>你小</code>,而是因为<code>精悍</code></p>
<p>因为<br>
<code>go语言服务器 "gopls" 可以取代好几个插件</code></p>
<h3 id="vsode没有代码自动补全">vsode没有代码自动补全</h3>
<p>如果没有代码提示,参考这个方法解决</p>
<p>https://blog.csdn.net/qq_36564503/article/details/124527414</p>
<h2 id="hello-world">hello world</h2>
<p>学习语言的第一个程序肯定是hello word了,在工作目录的 <code>src</code>新建 <code>hello</code> 文件夹并在hello目录中创建一个<code>main.go</code>文件,文件内容如下</p>
<p><img src="https://img2023.cnblogs.com/blog/1652001/202301/1652001-20230128174637877-23666058.png" alt="image-20230128151803874" loading="lazy"></p>
<pre><code>package main // 声明 main 包,表明当前是一个可执行程序

func main() { // main函数,是程序执行的入口
        println("Hello World!") // 在终端打印 Hello World!
}
</code></pre>
<p>在hello目录下执行:</p>
<pre><code>go run main.go
</code></pre>
<p><img src="https://img2023.cnblogs.com/blog/1652001/202301/1652001-20230128174637674-1179536648.png" alt="image-20230128151933815" loading="lazy"></p><br><br>
来源:https://www.cnblogs.com/makalochen/p/17070999.html
頁: [1]
查看完整版本: go 环境搭建