Go语言编译环境设置教程

2025-07-22 19:50

本文主要是介绍Go语言编译环境设置教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《Go语言编译环境设置教程》Go语言支持高并发(goroutine)、自动垃圾回收,编译为跨平台二进制文件,云原生兼容且社区活跃,开发便捷,内置测试与vet工具辅助检测错误,依赖模块化管理,提升开发效...

Go语言优势

  • 天生支持高并发

可以自由的去控制其并发量,也就是携程,通过go routine关键字就行了。

  • 自动垃圾回收机制
  • 内存的清理
  • 不需要环境依赖

在运行go程序的时候是以二进制的方式进行运行,go build之后是生成二进制文件。

Windows的exec一样,直接丢到linux上面执行就行了,不需要安装任何环境。

  • 云原生无缝接入
  • 社区活跃度
  • 易上手

下载 Go  配置编译环境

如果要编写和阅读代码,首先要编译安装这个语言的编译环境, 

  • Go 安装文件以及源代码 https://golang.google.cn/dl/
  • 下载对应平台的二进制文件并安装
  • 环境变量

GOROOT

  • go 的安装路径

GOPATH

  • src:存放源代码
  • pkg:存放依赖包,三方库的安装路径
  • bin:存放可执行文件

如果是新环境需要创建 /Users/lulei/go/src/github.com这个目录的,在这个目录里面就可以去克隆GitHub的地址。

lulei@luleideMACBook-Pro github.com % pwd
/Users/lulei/go/src/github.com
 
lulei@luleideMacBook-Pro github.com % ls
astaxie		cespare		hashicorp	mitchellh	prometheus
beorn7		golang		lovekeepcoding	pkg		shiena
 
PS C:\Users\lucas\GolandProjects\awesomeProject> go env
set GOROOT=C:/Users/lucas/sdk/go1.21.11
 
set GOPATH=C:\Users\lucas\go
C:\Users\lucas\go\pkg\mod\cache

其他常用变量

GOOS,GOARCH,GOPROXY

国内用户建议设置goproxy:export GOPROXY=https://goproxy.cn(因为防火墙的原因,好多依赖包是无法直接拉取的,设置这个那么会通过这个代理去拉)

配置 GOPROXY

Go默认的GOPROXY的值是:GOPROXY=https://proxy.golang.org,direct。

这个goproxy在使用go get安装第三方库的时候会报错,导致无法下载成功,所以必须要修改一下。

  • windows使用如下命令
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.io,direct
  • linux/macos 
export GO111MODULE=on
export GOPROXY=https://goproxy.io

IDE 设置(VS Code)

下载并安装 Visual Studio Code  https://code.visualstudio.com/download

安装 Go 语言插件  https://marketplace.visualstudio.com/items?itemName=golang.go

其他可选项

  • Intellj goland,收费软件
  • vim,sublime等

一些基本命令

Go语言编译环境设置教程

项目执行方式有两种,第一种go build,生成二进制文件main.exe,直接执行即可。

PS C:\Users\lucas\GolandProjects\awesomeProject> go build main.go    

编译产生一个二进制文件

Go语言编译环境设置教程

其次就是go run main.go,先将main.go去编译了,编译好之后直接执行,然后可执行文件是不保留的。

 PS C:\Users\lucas\GolandProjects\awesomeProject> go run main.gohello golang

Go语言编译环境设置教程

  • build:从源代码构建成可执行文件 
  • get:下载一个包
  • install:go install从github上面下载某一个包并且安装到本地,相当于是编译安装,所以很多时候开发一个go语言项目,上传到GitHub上面,你希望别人可以使用你的项目,如果go get会将源代码下载下来,如果是go install那么会将源代码下载下来,编译完成直接安装,接下来就可以直接使用。
module awesomeProject2

go 1.16

require github.com/lovekeepcoding/testmath v0.0.0-20220225034816-3d3a22d574b6 // indirect


lulei@luleideMacBook-Pro awesomeProject2 % go get github.com/lovekeepcoding/testmath
go get: added github.com/lovekeepcoding/testmath v0.0.0-20220225034816-3d3a22d574b6
  • module 用来做依赖管理的
  • test 用来做单元测试的

Go build

Go 语言不支持动态链接,因此编译时会将所有依赖编译进同一个二进制文件。(无论拷贝到任何环境里面,因为所有依赖都会被编译到一起,所以可以顺利运行的,代价就是安装包会大一些)

指定输出目录。(go build 将go语言的源代码编译成一个二进制文件)China编程

go build –o bin/mybinary .

lulei@luleideMacBook-Pro awesomeProject4 % go build
lulei@luleideMacBook-Pro awesomeProject4 % ls
awesomeProject4 go.mod          main.go
lulei@luleideMacBook-Pro awesomeProject4 % ./awesomeProject4 
3

在构建的时候源代码分离

常用环境变量设置编译操作系统和 CPU 架构。

GOOS=linux GOARCH=amd64 go build

全支持列表。

$GOROOT/src/go/build/syslist.go

Go test

Go 语言原生自带测试

impokPoOnciJPrt "testing"
func TestIncrease(t *testing.编程T) {
t.Log("Start testing")
increase(1, 2)
}

写任何程序的时候,都需要去做单元测试,如何验证你写的代码是否健壮呢?

一种是手工测试,手工测试会有问题,当你的程序不断的改进修改,重复的手工测试会使得你的整个开发效率非常低,所以在整个开发过程当中都会有要求,我写的业务逻辑都是需要对应编写测试用例的,这个测试用例第一步就是单元测试。

单元测试是面向代码的,比如说你写了一个函数,你需要验证这个函数在各种情况下的行为是否正常,你们就需要写很多的测试用例,go语言原生自带单元测试的支持。

  • go test ./… -v 运行javascript测试
  • go test命令扫描kPoOnciJP所有*_test.go为结尾的文件,惯例是将测试代码与正式代码放在同目录, 如 foo.go 的测试代码一般写在 foo_test.go

Go语言编译环境设置教程

编写测试用例的时候,会将单测的代码和主代码放在一个包,这样的好处是私有函数,私有的变量都可以在单测里面被引用到。

Go vet

有些错误并不明显,这个错误并不会影响编译。但是它本身的逻辑会有一些小的瑕疵,在某些情况下可能会引发一些问题,针对这些情况,提供了上面这条命令。

它会检测出程序运行当中可能出现的问题,比如下面这些。

Go语言编译环境设置教程

在多线程里面,哪个线程先执行,哪个线程后执行,这是不能确保的,如果主线程启动了一些子线程去运行,主线程立马退出了,很可能子线程还没有被正确的执行,就会被一起退出。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程China编程(www.chinasem.cn)。 

这篇关于Go语言编译环境设置教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1155457

相关文章

一篇文章彻底搞懂macOS如何决定java环境

《一篇文章彻底搞懂macOS如何决定java环境》MacOS作为一个功能强大的操作系统,为开发者提供了丰富的开发工具和框架,下面:本文主要介绍macOS如何决定java环境的相关资料,文中通过代码... 目录方法一:使用 which命令方法二:使用 Java_home工具(Apple 官方推荐)那问题来了,

从基础到高级详解Go语言中错误处理的实践指南

《从基础到高级详解Go语言中错误处理的实践指南》Go语言采用了一种独特而明确的错误处理哲学,与其他主流编程语言形成鲜明对比,本文将为大家详细介绍Go语言中错误处理详细方法,希望对大家有所帮助... 目录1 Go 错误处理哲学与核心机制1.1 错误接口设计1.2 错误与异常的区别2 错误创建与检查2.1 基础

Nginx搭建前端本地预览环境的完整步骤教学

《Nginx搭建前端本地预览环境的完整步骤教学》这篇文章主要为大家详细介绍了Nginx搭建前端本地预览环境的完整步骤教学,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录项目目录结构核心配置文件:nginx.conf脚本化操作:nginx.shnpm 脚本集成总结:对前端的意义很多

全网最全Tomcat完全卸载重装教程小结

《全网最全Tomcat完全卸载重装教程小结》windows系统卸载Tomcat重新通过ZIP方式安装Tomcat,优点是灵活可控,适合开发者自定义配置,手动配置环境变量后,可通过命令行快速启动和管理... 目录一、完全卸载Tomcat1. 停止Tomcat服务2. 通过控制面板卸载3. 手动删除残留文件4.

Python的pandas库基础知识超详细教程

《Python的pandas库基础知识超详细教程》Pandas是Python数据处理核心库,提供Series和DataFrame结构,支持CSV/Excel/SQL等数据源导入及清洗、合并、统计等功能... 目录一、配置环境二、序列和数据表2.1 初始化2.2  获取数值2.3 获取索引2.4 索引取内容2

Go语言中json操作的实现

《Go语言中json操作的实现》本文主要介绍了Go语言中的json操作的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录 一、jsOChina编程N 与 Go 类型对应关系️ 二、基本操作:编码与解码 三、结构体标签(Struc

python依赖管理工具UV的安装和使用教程

《python依赖管理工具UV的安装和使用教程》UV是一个用Rust编写的Python包安装和依赖管理工具,比传统工具(如pip)有着更快、更高效的体验,:本文主要介绍python依赖管理工具UV... 目录前言一、命令安装uv二、手动编译安装2.1在archlinux安装uv的依赖工具2.2从github

Java实现为PDF设置背景色和背景图片

《Java实现为PDF设置背景色和背景图片》在日常的文档处理中,PDF格式因其稳定性和跨平台兼容性而广受欢迎,本文将深入探讨如何利用Spire.PDFforJava库,以简洁高效的方式为你的PDF文档... 目录库介绍与安装步骤Java 给 PDF 设置背景颜色Java 给 PDF 设置背景图片总结在日常的

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

C#实现SHP文件读取与地图显示的完整教程

《C#实现SHP文件读取与地图显示的完整教程》在地理信息系统(GIS)开发中,SHP文件是一种常见的矢量数据格式,本文将详细介绍如何使用C#读取SHP文件并实现地图显示功能,包括坐标转换、图形渲染、平... 目录概述功能特点核心代码解析1. 文件读取与初始化2. 坐标转换3. 图形绘制4. 地图交互功能缩放