首页 > 其他分享 >day01 GO环境搭建

day01 GO环境搭建

时间:2024-09-17 09:34:56浏览次数:11  
标签:bin 编译 day01 go 编译器 GO crm 目录 搭建

day01 环境搭建

Go 和 C语言、C++、Python、Java 等一样都是编程语言。学习任何一门编程语言本质上都分3步走:

  • 第一步:安装 解释器 或 编译器
  • 第二步:学相关编程语言语法,然后写代码。
  • 第三步:用已安装解释器 或 编译器 去运行自己写的代码,这样代码就会去完成我们编写的功能了。

Go是编译型语言,所以我们一般称Go安装是编译器

Go是开源且跨平台的一门编程语言,所以他支持window、linux、mac操作系统,同时也意味着我们可以在各种系统中安装Go的编译器。

1. Mac系统

1.1 下载Go编译器

https://golang.google.cn/

1.2 点击安装

image-20200530225723360

默认的安装目录:/usr/local/go/

编译器启动文件:/usr/local/go/bin/go

1.3 配置环境PATH

export PATH=/usr/local/go/bin:$PATH

1.4 其他配置

1.4.1 创建一个任意目录

此目录以后放你写的所有go代码。

/Users/wupeiqi/GolangProjects/
- bin,通过go install编译时候,生成的可执行文件。
- pkg,通过go install编译时候,生成的包文件。
- src,放我们以后编写的所有go代码和依赖。
	- crm
		- app.go
	- luffcity
		- xx.go

1.4.2 配置环境变量

// Go安装目录
export GOROOT=/usr/local/go
// 代码和编译之后的文件相关代码
export GOPATH=/Users/wupeiqi/GolangProjects
// 存放编译之后的文件
export GOBIN=/Users/wupeiqi/GolangProjects/bin

1.5 环境变量“持久化”

vim ~/.bash_profile

export PATH=/usr/local/go/bin:$PATH
export GOROOT=/usr/local/go
export GOPATH=/Users/wupeiqi/GolangProjects
export GOBIN=/Users/wupeiqi/GolangProjects/bin

1.6 编写go代码

$GOPATH
├── bin
├── pkg
└── src
    └── crm
        └── app.go
package main

import "fmt"

func main() {
    fmt.Println("叫爸爸")
}

1.7 运行

本质上就是让Go编译器去运行咱们编写的代码。

方式1:

// 先进入项目目录
go run app.go

方式2(推荐):

// 先进入项目目录

// 编译代码
go build
// 运行
./crm

方式3:

// 先进入项目目录
go install 

// 去bin运行
./crm
$GOPATH
├── bin
│   └── crm
├── pkg
└── src
    └── crm
        └── app.go

2. Linux系统

2.1 下载Go编译器

https://golang.google.cn/

2.2 安装

安装目录
/opt/go

启动Go编译器文件:/opt/go/bin/go

2.3 配置环境变量PATH

export PATH=/opt/go/bin:$PATH

2.4 其他配置

2.4.1 创建一个任意目录

存放咱们编写的所有项目代码,编译文件之后存放编译后的文件。

/home/wupeiqi/GolangProjects/
- bin,在执行go install 命令,生成的可执行文件的目录。
- pkg,在执行go install 命令,存放生成的包文件。
- src,以后编写的所有Go代码都会放在这个目录。
	- crm
		- app.go
	- luffy
		- lk.go

2.4.2 环境变量的配置

export GOROOT=/opt/go
export GOPATH=/home/wupeiqi/GolangProjects
export GOBIN=/home/wupeiqi/GolangProjects/bin

2.5 环境变量的“持久化”

vim ~/.bash_profile

export PATH=/opt/go/bin:$PATH
export GOROOT=/opt/go
export GOPATH=/home/wupeiqi/GolangProjects
export GOBIN=/home/wupeiqi/GolangProjects/bin

2.6 编写go代码

/home/wupeiqi/GolangProjects(简写$GOPATH)
├── bin
├── pkg
└── src
    └── crm
        └── app.go
package main
import "fmt"
func main() {
    // 调用Println函数在屏幕输出:叫爸爸
    fmt.Println("叫爸爸")
}

2.7 运行代码

本质上将写好的代码交给Go编译器去执行。

方式1:

// 进入项目目录
go run app.go

方式2(推荐):

// 进入项目目录

// 编译代码并生成一个可执行文件
go build  

// 运行
./crm

方式3:

// 进入项目目录

// 编译代码,把编译之后的结果会放在 bin/pkg目录
go install 

// 运行
./crm
├── bin
│   └── crm
├── pkg
└── src
    └── crm
        └── app.go

Go程序员的项目:

  • 产出一个可执行文件。
  • 产出一个包文件。

3. Windows系统

3.1 下载Go编译器

https://golang.google.cn/

3.2 点击安装

建议安装:C:\Go

3.3 环境变量PATH

以便于以后运行GO编译器时,无需再写路径。

3.4 其他配置

3.4.1 创建一个任意目录

以后咱们的go项目都要按照要求放在这个目录。

Y:\GolangProjects
 - bin,go install在编译项目时,生成的可执行文件会放到此目录。
 - pkg,go install在编译项目时,生成的包文件会放到此目录。
 - src,以后所有的项目都要放在这个目录。
 	- crm
 		- app.go
	- luffy
		- xx.go

3.4.2 环境变量配置

image-20200531115559729

3.5 编写代码

Y:\GolangProjects
 - bin
 - pkg
 - src,以后所有的项目都要放在这个目录。
 	- crm
 		- app.go
package main

import "fmt"

func main() {
    fmt.Println("叫爸爸")
}

3.6 运行

本质上就是把Go代码交给Go编译器去执行。

方式1:

// 进入项目目录
go run app.go

方式2(推荐):

// 进入项目目录
go build

crm.exe

方式3:

// 进入项目目录
go install

执行 crm.exe
Y:\GolangProjects
 - bin
 	- crm.exe
 - pkg
 	- windows_amd64
 		- utils.a
 - src,以后所有的项目都要放在这个目录。
 	- crm
 		- app.go
 	- utils
 		- page.go

平时开发:

  • 开发可执行文件,用来让用户使用。
  • 开发一个包文件,其他项目来进行调用。

总结

首先要去下载Go编译器,然后进行安装,在安装目录下就是GO编译器相关的所有内容。

mac:     /etc/local/go/
linux:   /opt/go/
windows: C:\go\

在安装目录下有 bin目录中有一个go可执行文件,基于他来启动编译器。

  • 直接通过路径找到可执行文件去运行(麻烦)
  • /etc/local/go/bin 目录添加PATH环境变量中。

那么在终端就可以执行执行go version,调用咱们安装的编译器。

如果想要正确的使用go编译器,还需做一些相关的配置(其他语言)。

  • 创建目录,用于存放项目代码、编译后的可执行文件、编译后的包文件。

    xxxx
    - bin
    - pkg
    - src
    	- crm
    		app.go
    
  • 环境变量

    GOROOT,GO编译器安装目录。
    GOPATH,用于存放项目代码、编译后的可执行文件、编译后的包文件(go 1.11版本后,go mod)。
    GOBIN,编译后的可执行文件存放的目录。
    

编写代码,然后进行。

写了两个项目:

  • crm,编译后生成一个可执行文件。
  • utils,编译后生成一个包文件。

运行项目

  • go run,运行项目代码,内部会先编译并将编译后的文件放在系统的临时目录,然后再自动执行。
  • go build,运行项目代码,手动编译并生成一个可执行文件,然后再自动执行。
  • go install ,生成可执行文件 + 包文件,并且会将编译后的文件放在bin/pkg目录。

4.开发工具

  • Goland,IDE(继承开发环境)【收费】
  • vscode,编辑器 + 第三发组件 【免费】

4.1 下载Goland

https://www.jetbrains.com/go/

4.2 配置

  • 字体
  • 参数提示

4.3 项目开发

  • 新项目
  • 打开老项目

注意:项目放在 $GOPATH/src目录。

参考博客

https://pythonav.com/wiki/detail/4/42/

标签:bin,编译,day01,go,编译器,GO,crm,目录,搭建
From: https://www.cnblogs.com/fuminer/p/18416916

相关文章

  • GO语言总体讲解与一些代码分析
    目录1.GO语言简介1.1起源与发展1.2语言特性1.3应用场景2.GO语言基础2.1基本语法2.2数据类型2.3控制结构2.4代码分析3.GO语言并发编程3.1Goroutines3.2Channels3.3Syncprimitives4.GO语言代码分析4.1代码组织结构4.2标准库源码分析4.3代码......
  • 基于Node.js+vue基于SpringoBoot的校园帮互助平台管理系统(开题+程序+论文) 计算机毕
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容研究背景在数字化校园日益普及的今天,学生之间的信息交流与合作愈发频繁,但传统方式往往受限于时间、空间及信息不对称等因素,难以高效解决学生在日常生活中遇到的各种......
  • 828 华为云征文|华为 Flexus 云服务器搭建 PicGo 图床
    一、引言在这个数字化的时代,高效地管理和存储图片资源变得至关重要。2024年9月14日,我将利用华为Flexus云服务器搭建一个PicGo图床,开启一场便捷的图片管理之旅。二、华为Flexus云服务器:稳定的基石华为Flexus云服务器以其卓越的性能和高度的稳定性脱颖而出。......
  • day01
    线程创建方式懵逼......
  • WSL2+Ubuntu 22.04搭建Qt开发环境+中文输入法
    WSL2+Ubuntu22.04搭建Qt开发环境+中文输入法安装wsl略wsl更新wsl--updatewsl--versionwsl--status我的显示如下,如果你的版本不是wsl2需要改为wsl2:$wsl--update正在安装:适用于Linux的Windows子系统已安装适用于Linux的Windows子系统。$wsl......
  • Go runtime 调度器精讲(十):异步抢占
    原创文章,欢迎转载,转载请注明出处,谢谢。0.前言前面介绍了运行时间过长和系统调用引起的抢占,它们都属于协作式抢占。本讲会介绍基于信号的真抢占式调度。在介绍真抢占式调度之前看下Go的两种抢占式调度器:抢占式调度器-Go1.2至今基于协作的抢占式调度器-Go1.2-Go......
  • mongo集群同步数据异常,手动同步节点副本数据
    转载请注明出处:数据同步方案当副本集节点的复制进程落后太多,以至于主节点覆盖了该节点尚未复制的oplog条目时,副本集节点就会变为“陈旧”。节点跟不上,就会变得“陈旧”。出现这种情况时,必须删除副本集节点的数据,然后执行初始同步,从而完全重新同步该节点。MongoDB提供了......
  • 基于django+vue扶贫助农与产品合作系统【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景在当前全球减贫事业与乡村振兴战略的双重背景下,扶贫助农已成为推动社会经济均衡发展的重要途径。随着信息技术的飞速发展,互联网+农业模式......
  • 基于django+vue峰数公司医疗设备管理系统【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着医疗技术的飞速发展,医疗设备的种类与数量日益增多,成为医疗机构日常运营中不可或缺的重要组成部分。峰数公司,作为一家致力于提供高质量......
  • 基于django+vue分类学科竞赛管理系统-后台2023【开题报告+程序+论文】-计算机毕设
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容研究背景随着教育改革的深入和对学生综合素质培养重视程度的提升,学科竞赛作为提升学生创新能力、实践能力和团队协作精神的重要途径,其规模和影响力......