GO语言之环境搭建和基本命令

go语言基础
下载go编译器
参考教程:https://www.cnblogs.com/Dominic-Ji/articles/11660121.html
下载地址:https://golang.google.cn/dl/

windos系统安装go,直接使用这个msi应用程序傻瓜式安装,一直下一步就好。
go目录简介

/bin:包含可执行文件,如:编译器,Go 工具/doc:包含文档模版/lib:包含示例程序,代码工具,本地文档等/misc:包含与支持 Go 编辑器有关的配置文件以及 cgo 的示例/os_arch:包含标准库的包的对象文件 (.a)/src:包含源代码构建脚本和标准库的包的完整源代码(Go 是一门开源语言)/src/cmd:包含 Go 和 C 的编译器和命令行脚本
gopath简介
gopath相当于是go语言的工作区。

GOPATH 默认采用和 $GOROOT 一样的值,但从 Go 1.1 版本开始,你必须修改为其它路径。它可以包含多个 Go 语言源码文件、包文件和可执行文件的路径,而这些路径下又必须分别包含三个规定的目录:src、pkg 和 bin,这三个目录分别用于存放源码文件、包文件和可执行文件。

https://www.bilibili.com/video/BV1gf4y1r79E/?spm_id_from=333.337.search-card.all.click
环境变量配置
GOPATH
所有你写的源代码都应该放在%GOPATH%/src目录下。
这个gopath你是可以自己定义的
比如我就在d盘创建一个目录go_path。
文件夹下再创三个目录:bin、pkg、src

配置 GOPATH:

在环境变量中指定你刚刚创建的文件夹位置
PATH
接下来配置path,需要在path中添加的路径有两个。

第一个是你下载的go程序(GOROOT)下的bin目录。(bin目录下有go编译器)
第二个是你创建的GOPATH路径。
配置完之后在命令可以执行go version查看是否成功:

go语言项目结构
对于个人开发者:

对于企业开发:

IDE下载与配置
安装goland
goland官网:https://www.jetbrains.com.cn/go/download/other.html
下载goland2021.3.5:

有弹窗就选择do not import。
又是熟悉的界面,验证激活码:

获取激活码:
https://www.mano100.cn/thread-1942-1-1.html
http://web.52shizhan.cn/ide?k=goland

goland里添加goroot和gopath
settings:

goroot:

gopath:

编写第一个GO程序
使用goland创建一个go项目(选择我们配置好的GOPATH路径):

新建一个go文件:

在文件内复制以下代码:
package main
import "fmt"
func main(){
fmt.Println("Hello world!") // 注意这个Println是大写开头
}
编译go文件
在项目路径下编译
使用命令行界面,在你的项目路径输入go build:

项目路径下多了一个exe文件:

这是个二进制的可执行文件,可以直接在命令行执行:

在其他路径编译
需要在go build命令后面添加路径。
比如当前我的项目路径如下:

我只需要输入以下代码即可编译:

为什么呢?因为我的项目路径在GOPATH的src目录内。
而GOPATH已经被配置到了环境变量内。
查看go是如何查找项目目录的:

编译产生的文件会出现在你的当前目录(这里的例子会出现在E盘):

pycharm配置编译后输出可执行文件的位置:

go相关命令
修改编译后文件的名字:
使用-o参数:go build -o new_name.exe
go run:执行go文件。(使用的比较少,推荐使用go build编译后再执行)
go install:相当于先执行go build,再把go build产生的exe文件拷贝到GOPATH的bin目录。

由于我们在环境变量配置了GOPATH,现在任何目录下都可以执行你install的exe文件。

跨平台编译
go语言支持跨平台编译。
假设当前我们开发代码是在windows下开发的,但是我们代码最终是要运行在linx服务器下。我们代码编译出的.exe文件是不能在liunx服务器上运行的。(go build产生的可执行文件是基于当前操作系统的可执行文件。)
交叉编译的概念:比如在windows上编译出一个可以在linux上能运行的二进制文件。
需要指定目标操作系统的平台和处理器架构即可:

步骤:
1.禁用CGO
2.设置目标平台
3.设置处理器(64或32)
示例:

再使用go build就可以编译出能在linux系统上运行的文件了。
GO语言之环境搭建和基本命令的更多相关文章
- windows下的go语言的环境搭建和初探
闲话不说,直入主题. 1.准备工具 a.windows下的Go语言开发安装包 官方下载地址:https://code.google.com/p/go/downloads/list b.Go语言中文官网 ...
- 【Apache Pulsar】Apache Pulsar单机环境及Go语言开发环境搭建
0x01 简介 Apache Pulsar是一个开源的分布式发布-订阅消息系统,与Kafka类似,但比后者更加强大.Pulsar最初由Yahoo开发并维护,目前已经成为Apache软件组织的一个孵化子 ...
- R语言开发环境搭建
R语言开发环境搭建 一.环境 Win7 64bit系统 二.R软件下载 R 3.5.2 for Windows,官网:https://www.r-project.org/ RStudio 1.1.46 ...
- Java 学习笔记 第一章:Java语言开发环境搭建
第一章:Java语言开发环境搭建 第二章:常量.变量和数据类型 第三章:数据类型转换.运算符和方法入门 1.Java虚拟机——JVM JVM(Java Virtual Machine ):Java虚拟 ...
- Windows下Go语言的环境搭建
在本地搭建了一个开发GO语言的开发环境,给大家分享一下用go语言写的第一个hello world的过程,希望对大家有所帮助. 1.想写GO语言首先得下载go语言的开发包 官方下载地址:https:// ...
- Go语言开发环境搭建
1.Go的安装 (1)下载go安装程序 下载地址:https://golang.org/dl/ (墙内下载地址http://www.golangtc.com/download),如果是您的系统是win ...
- 手把手教你Windows下Go语言的环境搭建
1.想写GO语言首先得下载go语言的开发包 官方下载地址:https://code.google.com/p/go/downloads/list 我用的是Win7 64位的操作系统,截图如下: 2.把 ...
- R 语言开发环境搭建
R 语言在统计计算和画图方面有着显著的优势,因此在大数据领域也有其一席之地. 本文将演示怎样搭建R 语言开发环境. 搭建R 语言开发环境,主要有两个步骤: - 安装 R 到操作系统 - 安装支持 R ...
- ubuntu16.04 Golang语言开发环境搭建
golang即go语言是跨平台的语言,适用于windows 和linux平台,下面介绍linux平台下ubuntu16.04系统下的开发环境搭建过程. 一.安装开发必备环境 执行下面命令分别安装git ...
- win7下 go语言开发环境搭建(64bit)
Go 是一个开源的编程语言,它能让构造简单.可靠且高效的软件变得容易. Go语言专门针对多处理器系统应用程序的编程进行了优化,使用Go编译的程序可以媲美C或C++代码的速度,而且更加安全.支持并行进程 ...
随机推荐
- 请问您今天要来点 ODT 吗
梗出处:请问您今天要来点兔子吗? 这篇文章主要记录一下自己学习 \(\text{ODT}\) 发生的种种. CF896C Willem, Chtholly and Seniorious \(\text ...
- 使用 sed 处理文本文件
前言 sed 是一款 GNU 流编辑器,可以按照指定的规则去处理文本文件或流,其强大的功能使用户在命令中快捷地修改文本文件成为可能. 它不会修改文件,除非使用shell重定向来保存结果.默认情况下,所 ...
- 【javaweb】integer是什么意思?integer和int的区别
1.数据类型不同:int是基础数据类型,而integer是包装数据类型 2.默认值不同:int的默认值是0,而integer的默认值是null 3.内存中存储的方式不同:int 在内存中直接存储的是数 ...
- Docker-Compose部署Gitlab以及Gitlab配置SMTP邮件服务
使用Docker-Compose部署Gitlab 拉取镜像 地址: https://hub.docker.com/r/gitlab/gitlab-ce/tags 拉取到镜像后,使用docker tag ...
- 离散傅里叶变换DFT的应用
目录 一维DFT 1 DFT的相关内容 2 DFT计算结果验证 3 DFT的时频曲线分析 4 DFT的应用 二维DFT 1 DFT在图像处理时的相关内容 2 DFT滤波应用 一维DFT 1 DFT的相 ...
- C++学习笔记七:输出格式<ios><iomanip>
这一篇主要总结一下C++标准库里输出格式相关的库函数. https://en.cppreference.com/w/cpp/io/manip 1.库: <ostream> <ios& ...
- Alpha-Beta剪枝的原理的深入理解(无图预警)
转载请注明 原文链接 :https://www.cnblogs.com/Multya/p/17929261.html 考虑一个树: 一棵树上只有叶子节点有值,有确定的根节点的位置 根据层数来划分叶子节 ...
- 一步一步教你写kubernetes sidecar
本文分享自华为云社区<一步一步教你写kubernetes sidecar>,作者: 张俭. 什么是sidecar? sidecar,直译为边车. 如上图所示,边车就是加装在摩托车旁来达到拓 ...
- 欢迎 Mixtral - 当前 Hugging Face 上最先进的 MoE 模型
最近,Mistral 发布了一个激动人心的大语言模型: Mixtral 8x7b,该模型把开放模型的性能带到了一个新高度,并在许多基准测试上表现优于 GPT-3.5.我们很高兴能够在 Hugging ...
- MySQL|MySQL事物以及隔离级别
MySQL 事务主要用于处理操作量大,复杂度高的数据.比如开单,需要添加给订单表增加记录,还需要增加订单的各种相关明细,操作复杂度高,这些操作语句需要构成一个事务.在 MySQL 命令行的默认设置下, ...