Go语言开发环境搭建

文档说明

本文作者:SwBack
创作时间:2022‎年‎6‎月‎8‎日 ‏‎18:46:21
知乎:https://www.zhihu.com/people/back-88-87
CSDN:https://blog.csdn.net/qq_30817059
百度搜索: SwBack

系统: Windows 11
go 1.18.2

安装包下载

安装包下载链接

image-20220528200811272

直接默认NEXT

查看Go版本

image-20220528200917358

查看Go变量

go env

image-20220528202553813

Go项目结构

在进行go语言开发的时候,我们的代码总是会保存在$GOPATH/src目录下。在工程经过go buildgo install 、或go get 、等指令后会将下载的第三方包源代码文件放在$GOPATH/src目录下,产生的二进制 可执行文件放在$GOPATH/bin目录下,生成的中间缓存文件会被保存在$GOPATH/pkg

如果我们使用版本管理工具如Git 来管理我们的项目代码时,我们只需要添加$GOPATH/src目录的源代码即可。binpkg 目录的内容无需版本控制。

适合个人开发者image-20220528205009227

流行的项目结构

image-20220528205200917

适合企业的结构

image-20220528205227646

Go开发编辑器

Go采用的时utf-8编码的文本文件。使用Vs Code编辑器。

环境配置

Vscode Go环境配置

首先需要下载Go的一些插件,因为默认地址为国外,所以要先修改下配置。打开命令提示符,依次执行以下命令

go env -w GOSUMDB=off
go env -w GOPROXY=https://goproxy.cn,direct

如果还是报错,可以将地址复制到命令提示符手动下载

image-20220529090206045

下载完成$GOPATH/bin目录下看到所下载的文件

image-20220529090344117

报错处理

如果在go build的过程中遇到如下错误

go: go.mod file not found in current directory or any parent directory; see 'go help modules' 

执行如下命令即可

go env -w GO111MODULE=auto 

image-20220529091559202

Go基本操作

编译

使用go build 在项目目录下执行,进行编译,生成exe文件,执行即可

image-20220529091833052

或者在任意目录带上$GOPATH/src 后地址 ,例如

go build swback.cn\swback\day01\helloworld

文件会生成在 执行命令的当前目录

Go run

直接执行.go文件

go install
1.先编译得到一个可执行文件2.将可执行文件拷贝到$GOPATH/bin

跨平台编译

默认我们go build的可执行文件都是当前操作系统的可执行文件,如果想要在windows 下编译一个linux可执行程序.只需要如下操作

指定目标操作系统的平台和处理器架构即可:

SET CGO_ENABLED=0 //禁用CGO
SET GOOS=linux //目标平台是linux
SET GOARCH=amd64 //目标处理器架构是amd64 一般无需操作

然后再执行go build命令,得到的就是能够再Linux平台运行的可执行文件了。

Windows 下编译Mac平台64位可执行程序:

SET CGO_ENABLED=0 
SET GOOS=darwin 
SET GOARCH=amd64 
go build

Mac 下编译Linux 和Windows平台64位可执行程序:

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

Linux下编译Mac和Windows平台64位可执行程序:

CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

第一个Go程序 Hello World

package main  // 声明 main 包,表明当前是一个可执行程序import "fmt"  // 导入内置 fmt 包func main(){  // main函数,是程序执行的入口fmt.Println("Hello World!")  // 在终端打印 Hello World!
}

通过go build编译之后,生成了一个exe文件 运行,输出Hello World!

image-20220529095459019

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/883516.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Coppelia Sim (v-REP)仿真 机器人3D相机手眼标定与实时视觉追踪 (二)

coppelia sim[V-REP]仿真实现 机器人于3D相机手眼标定与实时视觉追踪 二 zmq API接口python调用python获取3D相机的数据获取彩色相机的数据获取深度相机的数据用matpolit显示 python控制机器人运动直接控制轴的位置用IK运动学直接移动到末端姿态 相机内参的标定记录拍照点的位置…

Java面向对象编程高阶(一)

Java面向对象编程高阶(一) 一、关键字static1、static修饰属性2、静态变量与实例变量的对比3、static修饰方法4、什么时候将属性声明为静态的?5、什么时候将属性声明为静态的?6、代码演示 一、关键字static static用来修饰的结构…

Javaee---多线程(一)

文章目录 1.线程的概念2.休眠里面的异常处理3.实现runnable接口4.匿名内部类子类创建线程5.匿名内部类接口创建线程6.基于lambda表达式进行线程创建7.关于Thread的其他的使用方法7.1线程的名字7.2设置为前台线程7.3判断线程是否存活 8.创建线程方法总结9.start方法10.终止&…

VAE中的“变分”什么

写在前面 VAE(Variational Autoencoder),中文译为变分自编码器。其中AE(Autoencoder)很好理解。那“变分”指的是什么呢?—其实是“变分推断”。变分推断主要用在VAE的损失函数中,那变分推断是什么&#x…

MobileNetV2实现实时口罩检测tensorflow

项目源码获取方式见文章末尾! 回复暗号:13,免费获取600多个深度学习项目资料,快来加入社群一起学习吧。 **《------往期经典推荐------》**项目名称 1.【Informer模型复现项目实战】 2.【卫星图像道路检测DeepLabV3Plus模型】 3.【…

著名AI人工智能的未来应用讲师培训师唐兴通数字经济大数据工业4.0数字化转型AIGC大模型培训讲师

《大数据与人工智能的未来应用》培训课程大纲 一、培训内容简介 本课程旨在帮助学员深度理解大数据与人工智能(AI)如何为未来商业和行业带来革命性变革。课程紧贴前沿科技,从数据采集、分析到AI应用开发,全方位解析大数据和AI如…

51c~目标检测~合集2

我自己的原文哦~ https://blog.51cto.com/whaosoft/12377509 一、总结 这里概述了基于深度学习的目标检测器的最新发展。同时,还提供了目标检测任务的基准数据集和评估指标的简要概述,以及在识别任务中使用的一些高性能基础架构,其还涵盖了…

Docker | images镜像的常用命令总结

命令总结 1. 帮助启动类命令基本命令systemctl status dockerdocker infodocker --help 2. 镜像命令docker images删除镜像出现错误 docker searchdocker pull xxx[:TAG]docker images -adocker images -qdocker system dfdocker rmi -f xxxxxdocker rmi -f $(docker images -q…

Qt 学习第十四天:线程与多线程

1024程序员快乐,如果这博客让你学习到了知识,请给我一个免费的赞❤️ 父子线程演示 一、创建界面文件 LCDnumber 二、创建mythread类,继承QObject 三、在MyThread.h文件做修改,并且加上函数声明 引入头文件,改变继…

实战:大数据冷热分析

实战:大数据冷热分析 冷热分析(Hot and Cold Data Analysis)的目的主要在于优化存储系统的性能和成本。通过识别并区分访问频率和存储需求不同的数据,可以采取适当的存储策略,进而提高系统的效率和用户体验。终极目的…

javaScript整数反转

function _reverse(number) { // 补全代码 return (number ).split().reverse().join(); } number :首先,将数字 number 转换为字符串。在 JavaScript 中,当你将一个数字与一个字符串相加时,JavaScript 会自动将数字转换为字符串…

PyTorch中如何进行向量微分、矩阵微分、计算雅各比行列式

文章目录 摘要Abstract 一、计算雅各比行列式二、向量微分三、矩阵微分总结 摘要 本文介绍了在PyTorch中进行向量微分、矩阵微分以及计算雅各比行列式的方法。通过对自动微分(Autograd)功能的讲解,展示了如何轻松实现复杂的数学运算&#xf…

代码编辑组件

代码编辑组件 文章说明核心代码运行演示源码下载 文章说明 拖了很久,总算是自己写了一个简单的代码编辑组件,虽然还有不少的bug,真的很难写,在写的过程中感觉自己的前端技术根本不够用,好像总是方案不够好;…

Flux 开源替代,他来了——Liberflux

LibreFLUX 是 FLUX.1-schnell 的 Apache 2.0 版本,它提供完整的 T5 上下文长度,使用注意力屏蔽,恢复了无分类器引导,并完全删除了 FLUX 美学微调/DPO 的大部分内容。 这意味着它比基本通量要难看得多,但它有可能更容易…

数据结构与算法汇总整理篇——数组与字符串双指针与滑动窗口的联系学习及框架思考

数组 数组精髓:循环不变量原则 数组是存放在连续内存空间上的相同类型数据的集合,通过索引(下标)访问元素,索引从0开始 随机访问快(O(1)时间复杂度);插入删除慢(需要移动元素);长度固定(部分语言中可动态调整) 其存…

解决电脑突然没有声音

问题描述:电脑突然没有声音了,最近没有怎么动过系统,没有安装或者卸载过什么软件,也没有安装或者卸载过驱动程序,怎么就没有声音了呢? 问题分析:仔细观察,虽然音量按钮那边看不到什…

索引的使用以及使用索引优化sql

索引就是一种快速查询和检索数据的数据结构,mysql中的索引结构有:B树和Hash。 索引的作用就相当于目录的作用,我么只需先去目录里面查找字的位置,然后回家诶翻到那一页就行了,这样查找非常快, 一、索引的使…

[Linux网络编程]06-I/O多路复用策略---select,poll分析解释,优缺点,实现IO多路复用服务器

一.I/O多路复用 I/O多路复用是一种用于提高系统性能的 I/O 处理机制。 它允许一个进程(或线程)同时监视多个文件描述符(可以是套接字、管道、终端设备等),等待这些文件描述符中出现读、写或异常状态。一旦有满足条件的…

ts:类的创建(class)

ts:类的创建(class) 一、主要内容说明二、例子class类的创建1.源码1 (class类的创建)2.源码1的运行效果 三、结语四、定位日期 一、主要内容说明 class创建类里主要有三部分组成,变量的声明,构…

ts:数组的常用方法(filter)

ts:数组的常用方法(filter) 一、主要内容说明二、例子filter方法(过滤)1.源码1 (push方法)2.源码1运行效果 三、结语四、定位日期 一、主要内容说明 ts中数组的filter方法,是筛选数…