Go语言(环境的搭建)
<p>一步一步,从零搭建Go语言开发环境。</p><h1 id="autoid-0-0-0"><span style="background-color: rgba(255, 153, 0, 1)">安装Go语言及搭建Go语言开发环境</span></h1>
<h2 id="autoid-1-0-0">下载</h2>
<h3 id="autoid-1-1-0">下载地址</h3>
<p>Go官网下载地址:https://golang.org/dl/</p>
<p>Go官方镜像站(推荐):https://golang.google.cn/dl/</p>
<h3 id="autoid-1-1-1">版本的选择</h3>
<p>Windows平台和Mac平台推荐下载可执行文件版,Linux平台下载压缩文件版。</p>
<p><img src="https://www.liwenzhou.com/images/Go/install_go_dev/1550814038938.png" alt="1550814038938"></p>
<h2 id="autoid-1-1-2"><span style="background-color: rgba(255, 153, 0, 1)">安装</span></h2>
<h3 id="autoid-1-2-0">Windows安装</h3>
<p>此安装实例以 <code>64位Win10</code>系统安装 <code>Go1.11.5可执行文件版本</code>为例。</p>
<p>将上一步选好的安装包下载到本地。</p>
<p><img src="https://www.liwenzhou.com/images/Go/install_go_dev/1550236584256.png" alt="1550236584256"></p>
<p>双击下载好的文件</p>
<p><img src="https://www.liwenzhou.com/images/Go/install_go_dev/1550236819662.png" alt="1550236819662"></p>
<p><img src="https://www.liwenzhou.com/images/Go/install_go_dev/1550236972659.png" alt="1550236972659"></p>
<p><img src="https://www.liwenzhou.com/images/Go/install_go_dev/1550237077339.png" alt="1550237077339"></p>
<h3 id="autoid-1-2-1"><span style="background-color: rgba(255, 153, 0, 1)">Linux下安装</span></h3>
<p>我们在版本选择页面选择并下载好<code>go1.11.5.linux-amd64.tar.gz</code>文件:</p>
<pre class="line-numbers language-bash"><code class=" language-bash">wget https://dl.google.com/go/go1.11.5.linux-amd64.tar.gz
</code></pre>
<p>将下载好的文件解压到<code>/usr/local</code>目录下:</p>
<pre class="line-numbers language-bash"><code class=" language-bash"><span class="token function">mkdir -p /usr/local/go<span class="token comment"># 创建目录
<span class="token function">tar -C /usr/lcoal/go zxvf go1.11.5.linux-amd64.tar.gz. <span class="token comment"># 解压
</span></span></span></span></code></pre>
<p>如果提示没有权限,加上<code>sudo</code>以root用户的身份再运行。执行完就可以在<code>/usr/local/</code>下看到go目录了。</p>
<p>配置环境变量: Linux下有两个文件可以配置环境变量,其中<code>/etc/profile</code>是对所有用户生效的;<code>$HOME/.profile</code>是对当前用户生效的,根据自己的情况自行选择一个文件打开,添加如下两行代码,保存退出。</p>
<pre class="line-numbers language-bash"><code class=" language-bash"><span class="token function">export GOROOT<span class="token operator">=/usr/local/go
<span class="token function">export PATH<span class="token operator">=<span class="token variable">$PATH<span class="token keyword keyword-:">:<span class="token variable">$GOROOT/bin
</span></span></span></span></span></span></span></code></pre>
<p>修改<code>/etc/profile</code>后要重启生效,修改<code>$HOME/.profile</code>后使用source命令加载<code>$HOME/.profile</code>文件即可生效。 检查:</p>
<pre class="line-numbers language-bash"><code class=" language-bash">~ go version
go version go1.11.5 linux/amd64
</code></pre>
<h3 id="autoid-1-2-2"><span style="background-color: rgba(255, 153, 0, 1)">Mac下安装</span></h3>
<p>下载可执行文件版,直接点击下一步安装即可,默认会将go安装到<code>/usr/local/go</code>目录下。</p>
<p><img src="https://www.liwenzhou.com/images/Go/install_go_dev/mac_install_go.png" alt="Mac安装Go"></p>
<h3 id="autoid-1-2-3">检查</h3>
<p>上一步安装过程执行完毕后,可以打开终端窗口,输入<code>go version</code>命令,查看安装的Go版本。</p>
<h2 id="autoid-1-2-4"><span style="background-color: rgba(255, 153, 0, 1)">配置GOPATH</span></h2>
<p><code>GOPATH</code>是一个环境变量,用来表明你写的go项目的存放路径(工作目录)。</p>
<p><code>GOPATH</code>路径最好只设置一个,所有的项目代码都放到<code>GOPATH</code>的<code>src</code>目录下。</p>
<p>Linux和Mac平台就参照上面配置环境变量的方式将自己的工作目录添加到环境变量中即可。 Windows平台按下面的步骤将<code>D:\code\go</code>添加到环境变量:</p>
<p><img src="https://www.liwenzhou.com/images/Go/install_go_dev/1550293810242.png" alt="1550293810242"></p>
<p><img src="https://www.liwenzhou.com/images/Go/install_go_dev/1550293634570.png" alt="1550293634570"></p>
<p><img src="https://www.liwenzhou.com/images/Go/install_go_dev/1550293854247.png" alt="1550293854247"></p>
<p><img src="https://www.liwenzhou.com/images/Go/install_go_dev/1550294002369.png" alt="1550294002369"></p>
<p><img src="https://www.liwenzhou.com/images/Go/install_go_dev/1550294111480.png" alt="1550294111480"></p>
<p><img src="https://www.liwenzhou.com/images/Go/install_go_dev/1550294152856.png" alt="1550294152856"></p>
<p><img src="https://www.liwenzhou.com/images/Go/install_go_dev/1550296325263.png" alt="1550296325263"></p>
<p>在 Go 1.8 版本之前,<code>GOPATH</code>环境变量默认是空的。从 Go 1.8 版本开始,Go 开发包在安装完成后会为 <code>GOPATH</code>设置一个默认目录,参见下表。</p>
<p>GOPATH在不同操作系统平台上的默认值</p>
<table>
<thead>
<tr><th align="center">平台</th><th align="center">GOPATH默认值</th><th align="center">举例</th></tr>
</thead>
<tbody>
<tr>
<td align="center">Windows</td>
<td align="center">%USERPROFILE%/go</td>
<td align="center">C:\Users\用户名\go</td>
</tr>
<tr>
<td align="center">Unix</td>
<td align="center">$HOME/go</td>
<td align="center">/home/用户名/go</td>
</tr>
</tbody>
</table>
<p>同时,我们将 <code>GOROOT</code>下的bin目录及<code>GOPATH</code>下的bin目录都添加到环境变量中。</p>
<h2 id="autoid-1-3-0"><span style="background-color: rgba(255, 153, 0, 1)">Go项目结构</span></h2>
<p>在进行Go语言开发的时候,我们的代码总是会保存在<code>$GOPATH/src</code>目录下。在工程经过<code>go build</code>、<code>go install</code>或<code>go get</code>等指令后,会将下载的第三方包源代码文件放在<code>$GOPATH/src</code>目录下, 产生的二进制可执行文件放在 <code>$GOPATH/bin</code>目录下,生成的中间缓存文件会被保存在 <code>$GOPATH/pkg</code> 下。</p>
<p>如果我们使用版本管理工具(Version Control System,VCS。常用如Git)来管理我们的项目代码时,我们只需要添加<code>$GOPATH/src</code>目录的源代码即可。<code>bin</code> 和 <code>pkg</code> 目录的内容无需版本控制。</p>
<h3 id="autoid-1-4-0">适合个人开发者</h3>
<p>我们知道源代码都是存放在<code>GOPATH</code>的<code>src</code>目录下,那我们可以按照下图来组织我们的代码。</p>
<p><img src="https://www.liwenzhou.com/images/Go/install_go_dev/1550805203054.png" alt="1550805203054"></p>
<h3 id="autoid-1-4-1">目前流行的项目结构</h3>
<p>Go语言中也是通过包来组织代码文件,我们可以引用别人的包也可以发布自己的包,但是为了防止不同包的项目名冲突,我们通常使用<code>顶级域名</code>来作为包名的前缀,这样就不担心项目名冲突的问题了。</p>
<p>因为不是每个个人开发者都拥有自己的顶级域名,所以目前流行的方式是使用个人的github用户名来区分不同的包。</p>
<p><img src="https://www.liwenzhou.com/images/Go/install_go_dev/1550805044488.png" alt="1550805044488"></p>
<p>举个例子:张三和李四都有一个名叫<code>studygo</code>的项目,那么这两个包的路径就会是:</p>
<div class="cnblogs_code">
<pre>import <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">github.com/zhangsan/studygo</span><span style="color: rgba(128, 0, 0, 1)">"</span></pre>
</div>
<p>和</p>
<div class="cnblogs_code">
<pre>import <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">github.com/lisi/studygo</span><span style="color: rgba(128, 0, 0, 1)">"</span></pre>
</div>
<p>以后我们从github上下载别人包的时候,如:</p>
<div class="cnblogs_code">
<pre>go <span style="color: rgba(0, 0, 255, 1)">get</span> github.com/jmoiron/sqlx</pre>
</div>
<p>那么,这个包会下载到我们本地<code>GOPATH</code>目录下的<code>src/github.com/jmoiron/sqlx</code>。</p>
<h3 id="autoid-1-4-2">适合企业开发者</h3>
<p><img src="https://www.liwenzhou.com/images/Go/install_go_dev/1550806101915.png" alt="1550806101915"></p>
<h2 id="autoid-1-4-3"><span style="background-color: rgba(255, 153, 0, 1)">Go开发编辑器</span></h2>
<p>Go采用的是UTF-8编码的文本文件存放源代码,理论上使用任何一款文本编辑器都可以做Go语言开发,这里推荐使用<code>VS Code</code>和<code>Goland</code>。 <code>VS Code</code>是微软开源的编辑器,而<code>Goland</code>是jetbrains出品的付费IDE。</p>
<p>我们这里使用<code>VS Code</code> 加插件做为go语言的开发工具。</p>
<h3 id="autoid-1-5-0">VS Code介绍</h3>
<p><code>VS Code</code>全称<code>Visual Studio Code</code>,是微软公司开源的一款免费现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义热键、括号匹配、代码片段、代码对比 Diff、GIT 等特性,支持插件扩展,支持 Win、Mac 以及 Linux平台。</p>
<p>虽然不如某些IDE功能强大,但是它添加Go扩展插件后已经足够胜任我们日常的Go开发。</p>
<h3 id="autoid-1-5-1">下载与安装</h3>
<p><code>VS Code</code>官方下载地址:https://code.visualstudio.com/Download</p>
<p>三大主流平台都支持,请根据自己的电脑平台选择对应的安装包。</p>
<p> </p>
<h2 id="autoid-1-5-3"><span style="background-color: rgba(255, 153, 0, 1)">第一个Go程序</span></h2>
<h3 id="autoid-1-6-0">Hello World</h3>
<p>现在我们来创建第一个Go项目——<code>hello</code>。在我们的<code>GOPATH</code>下的src目录中创建hello目录。</p>
<p>在该目录中创建一个<code>main.go</code>文件:</p>
<div class="cnblogs_code">
<pre><span style="color: rgba(0, 128, 128, 1)">1</span> package main<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 声明 main 包,表明当前是一个可执行程序</span>
<span style="color: rgba(0, 128, 128, 1)">2</span>
<span style="color: rgba(0, 128, 128, 1)">3</span> import <span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">fmt</span><span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 导入内置 fmt 包</span>
<span style="color: rgba(0, 128, 128, 1)">4</span>
<span style="color: rgba(0, 128, 128, 1)">5</span> func main(){<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> main函数,是程序执行的入口</span>
<span style="color: rgba(0, 128, 128, 1)">6</span> fmt.Println(<span style="color: rgba(128, 0, 0, 1)">"</span><span style="color: rgba(128, 0, 0, 1)">Hello World!</span><span style="color: rgba(128, 0, 0, 1)">"</span>)<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 在终端打印 Hello World!</span>
<span style="color: rgba(0, 128, 128, 1)">7</span> }</pre>
</div>
<h3 id="autoid-1-6-1">go build</h3>
<p><code>go build</code>表示将源代码编译成可执行文件。</p>
<p>在hello目录下执行:</p>
<div class="cnblogs_code">
<pre>go build</pre>
</div>
<p>或者在其他目录执行以下命令:</p>
<div class="cnblogs_code">
<pre>go build hello</pre>
</div>
<p>go编译器会去 <code>GOPATH</code>的src目录下查找你要编译的<code>hello</code>项目</p>
<p>编译得到的可执行文件会保存在执行编译命令的当前目录下,如果是windows平台会在当前目录下找到<code>hello.exe</code>可执行文件。</p>
<p>可在终端直接执行该<code>hello.exe</code>文件:</p>
<div class="cnblogs_code">
<pre>d:\code\go\src\hello><span style="color: rgba(0, 0, 0, 1)">hello.exe
Hello World</span>!</pre>
</div>
<p>我们还可以使用<code>-o</code>参数来指定编译后可执行文件的名字。</p>
<div class="cnblogs_code">
<pre>go build -o heiheihei.exe</pre>
</div>
<h3 id="autoid-1-6-2">go install</h3>
<p><code>go install</code>表示安装的意思,它先编译源代码得到可执行文件,然后将可执行文件移动到<code>GOPATH</code>的bin目录下。因为我们的环境变量中配置了<code>GOPATH</code>下的bin目录,所以我们就可以在任意地方直接执行可执行文件了。</p>
<h3 id="autoid-1-6-3">跨平台编译</h3>
<p>默认我们<code>go build</code>的可执行文件都是当前操作系统可执行的文件,如果我想在windows下编译一个linux下可执行文件,那需要怎么做呢?</p>
<p>只需要指定目标操作系统的平台和处理器架构即可:</p>
<div class="cnblogs_code">
<pre>SET CGO_ENABLED=<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 禁用CGO</span>
SET GOOS=linux<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 目标平台是linux</span>
SET GOARCH=amd64<span style="color: rgba(0, 128, 0, 1)">//</span><span style="color: rgba(0, 128, 0, 1)"> 目标处理器架构是amd64</span></pre>
</div>
<p>然后再执行<code>go build</code>命令,得到的就是能够在Linux平台运行的可执行文件了。</p>
<p>Mac 下编译 Linux 和 Windows平台 64位 可执行程序:</p>
<div class="cnblogs_code">
<pre>CGO_ENABLED=<span style="color: rgba(128, 0, 128, 1)">0</span> GOOS=linux GOARCH=<span style="color: rgba(0, 0, 0, 1)">amd64 go build
CGO_ENABLED</span>=<span style="color: rgba(128, 0, 128, 1)">0</span> GOOS=windows GOARCH=amd64 go build</pre>
</div>
<p>Linux 下编译 Mac 和 Windows 平台64位可执行程序:</p>
<div class="cnblogs_code">
<pre>CGO_ENABLED=<span style="color: rgba(128, 0, 128, 1)">0</span> GOOS=darwin GOARCH=<span style="color: rgba(0, 0, 0, 1)">amd64 go build
CGO_ENABLED</span>=<span style="color: rgba(128, 0, 128, 1)">0</span> GOOS=windows GOARCH=amd64 go build</pre>
</div>
<p>Windows下编译Mac平台64位可执行程序:</p>
<div class="cnblogs_code">
<pre>SET CGO_ENABLED=<span style="color: rgba(128, 0, 128, 1)">0</span><span style="color: rgba(0, 0, 0, 1)">
SET GOOS</span>=<span style="color: rgba(0, 0, 0, 1)">darwin
SET GOARCH</span>=<span style="color: rgba(0, 0, 0, 1)">amd64
go build</span></pre>
</div>
<p>现在,开启你的Go语言学习之旅吧。人生苦短,let’s Go.</p><br><br>
来源:https://www.cnblogs.com/qicun/p/11378354.html
頁:
[1]