当前位置: 首页 > news >正文

Go语言开发环境搭建

#1024程序员节|征文#
image-20220529095459019

文档说明

本文作者: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

相关文章:

Go语言开发环境搭建

#1024程序员节|征文# 文档说明 本文作者: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 安装包下载 安装包下载链接…...

嵌入式硬件设计:技术与实践

嵌入式系统是现代技术世界中的重要组成部分,几乎遍布所有领域,从消费电子产品、医疗设备到工业自动化和智能交通系统。嵌入式硬件设计是这一领域的核心,它涉及到对处理器、存储器、接口、传感器等多种硬件元件的选择、集成与优化,使系统能够在特定环境下执行特定任务。本文…...

vue中使用echarts,导入JSON数据画图

1、将.json文件放置在与index.html同一目录下 2、编写vue界面&#xff0c;在script中加载json文件 3、在script中加载处理json数据 4、用处理后的数据画图 vue界面代码如下&#xff1a; <script> import * as echarts from "echarts" //引入echarts核心模…...

【C++篇】探索STL之美:熟悉使用String类

CSDN 文章目录 前言 &#x1f4ac; 欢迎讨论&#xff1a;如果你在学习过程中有任何问题或想法&#xff0c;欢迎在评论区留言&#xff0c;我们一起交流学习。你的支持是我继续创作的动力&#xff01; &#x1f44d; 点赞、收藏与分享&#xff1a;觉得这篇文章对你有帮助吗&…...

ETLCloud搭配MySQL | 让关系型数据库更智能

在现代数据处理领域&#xff0c;ETL技术和云服务正迅速成为数据管理的核心。本文将探讨如何将 ETLCloud 与 MySQL 配合使用&#xff0c;将不同来源的表转移到另一张表中&#xff0c;以最大限度地提升关系型数据库的价值和性能。 一、前期准备 环境 首先确保MySQL源数据库能够…...

Java 开发——(上篇)从零开始搭建后端基础项目 Spring Boot 3 + MybatisPlus

一、概述 记录时间 [2024-10-23] 本文是一个基于 Spring Boot 3 MybatisPlus 的项目实战开发&#xff0c;主要涵盖以下几个方面&#xff1a; 从零开始的项目创建IDEA 中开发环境的热部署Maven、Swagger3、MybatisPlus 等的配置路由映射知识静态资源访问文件上传功能实现拦截器…...

Psychophysiology:脑-心交互如何影响个体的情绪体验?

摘要 情绪的主观体验与对身体(例如心脏)活动变化的情境感知和评估相关。情绪唤醒增加与高频心率变异性(HF-HRV)降低、EEG顶枕区α功率降低以及心跳诱发电位(HEP)振幅较高有关。本研究使用沉浸式虚拟现实(VR)技术来研究与情绪唤醒相关的脑心相互作用&#xff0c;以实现自然而可…...

FunASR实时语音识别内网部署 | 无网络环境中的实时语音识别 | 实时语音识别

1. 在有网的电脑上面先下载下面内容 下载模型文件&#xff0c;可以到modelscope中下载 下载项目源码&#xff0c;可以到github中搜索funasr下载 配置环境&#xff0c;这里使用conda虚拟环境&#xff0c;创建并进入虚拟环境 conda create -n funasr python3.8 conda activate …...

【设计模式-状态模式】

状态模式&#xff08;State Pattern&#xff09;是一种行为设计模式&#xff0c;它允许一个对象在内部状态改变时改变它的行为。换句话说&#xff0c;这种模式让对象在不同的状态下能够表现出不同的行为&#xff0c;而不需要修改对象的代码。状态模式通过将对象的行为与状态进行…...

【代码随想录Day50】图论Part02

岛屿数量 深搜 题目链接/文章讲解&#xff1a;代码随想录 class Solution {// 计算网格中岛屿的数量public int numIslands(char[][] grid) {int sum 0; // 初始化岛屿数量为0// 遍历整个网格for (int i 0; i < grid.length; i) {for (int j 0; j < grid[0].length…...

帝国CMS 内容页调用上一篇下一篇的方法(精华汇总)

帝国cms默认的内容页的上一页&下一页的调用代码是&#xff1a; 上一篇&#xff1a;[!--info.pre--] 下一篇&#xff1a;[!--info.next--] 但是实话实说&#xff0c;如果做个很普通的模版那足够用了&#xff0c;但是如果想个性化一点的话&#xff0c;比如加背景&#xff…...

(7)c++复合数据类型之数组

数组 数组就是可以存储一组相同类型的值&#xff0c;比如int a[10];就是一个存储10个int类型的数组。 数组初始化 数组初始化可以单个初始化&#xff0c;也是使用列表初始化&#xff0c;列表初始化可以全部&#xff0c;或者部分&#xff0c;如下案例&#xff1a; #include &…...

2.1 > Shell 是什么、如何更熟练的使用 Bash Shell

Shell 基础知识 Shell是计算机操作系统中的一个命令行解释器&#xff0c;由C语言编写&#xff0c;用于用户与操作系统之间进行交互。用户可以通过Shell输入命令&#xff0c;操作系统接收到这些命令后执行相应的操作。Shell一般还提供了编程语言的基本功能&#xff0c;允许用户…...

YOLO V3 网络构架解析

YOLO V3&#xff08;You Only Look Once version 3&#xff09;是由Joseph Redmon等人于2018年提出的一种基于深度学习的目标检测算法。它在速度和精度上相较于之前的版本有了显著提升&#xff0c;成为计算机视觉领域的一个重要里程碑。本文将详细解析YOLO V3的网络架构&#x…...

【zlm】 webrtc源码讲解(二)

目录 webrtc播放 MultiMediaSourceMuxer里的_ring webrtc播放 > MediaServer.exe!mediakit::WebRtcPlayer::onStartWebRTC() 行 60 CMediaServer.exe!mediakit::WebRtcTransport::OnDtlsTransportConnected(const RTC::DtlsTransport * dtlsTransport, RTC::SrtpSession::…...

5G RedCap工业路由器赋能电力物联网应用

随着5G轻量化技术应用的推进&#xff0c;5G RedCap旨在提供低功耗、低成本、广覆盖等功能特点赋能电力智能化升级。特别适用于工业物联网、低空经济、车联网、消费电子和轻量级5G的需求。 5G RedCap工业路由器的特点 低功耗&#xff1a;5G RedCap工业路由器通过节能技术&#…...

029.浏览器自动化-抓取#document下的内容

一、iframe下的#document是什么 #document 是一个特殊的 HTML 元素&#xff0c;表示 <iframe> 元素内部的文档对象。当你在 HTML 页面中嵌入一个 <iframe> 元素时&#xff0c;浏览器会创建一个新的文档对象来表示 <iframe> 内部的内容。这 个文档对象就是 #…...

2024前端html5,css3面试题总汇

1.XML&#xff0c;HTML&#xff0c;XHTML区别⭐ XML&#xff1a;XML是一个可扩展标记语言&#xff0c;主要是用来存储&#xff0c;传输数据的&#xff0c;并非显示数据&#xff0c;可以用来标记数据&#xff0c;定义数据类型&#xff0c;允许用户对自己的标记语言进行定义&…...

css实现外层不换行,内层换行

css实现上图效果&#xff0c;内容A和B整体不换行&#xff0c;B内容中换行 <div className"description"> <div className"label">{formatMessage({id: description})}</Col> <divclassName"value"> &l…...

word取消自动单词首字母大写

情况说明&#xff1a;在word输入单词后首字母会自动变成大写 &#xff08;1&#xff09;点击菜单栏文件 &#xff08;2&#xff09;点击“更多”——>“选项” &#xff08;3&#xff09;点击“校对”——>“自动更正选项” &#xff08;4&#xff09;取消“句首字母大写…...

SDMatte镜像结构详解:/opt/sdmatte-web目录布局与模型路径规范说明

SDMatte镜像结构详解&#xff1a;/opt/sdmatte-web目录布局与模型路径规范说明 1. 镜像概述 SDMatte 是一款面向高质量图像抠图场景的AI模型&#xff0c;特别适合处理以下任务&#xff1a; 商品图主体分离透明物体提取&#xff08;如玻璃器皿、薄纱等&#xff09;复杂边缘精…...

HunyuanVideo-Foley保姆级教程:从零部署到音效生成的5个关键步骤

HunyuanVideo-Foley保姆级教程&#xff1a;从零部署到音效生成的5个关键步骤 1. 环境准备与镜像部署 1.1 硬件要求检查 在开始部署前&#xff0c;请确保您的设备满足以下最低配置要求&#xff1a; 显卡&#xff1a;NVIDIA RTX 4090/4090D&#xff08;24GB显存&#xff09;内…...

开源动作捕捉新纪元:FreeMoCap低成本解决方案全解析

开源动作捕捉新纪元&#xff1a;FreeMoCap低成本解决方案全解析 【免费下载链接】freemocap Free Motion Capture for Everyone &#x1f480;✨ 项目地址: https://gitcode.com/GitHub_Trending/fr/freemocap 问题&#xff1a;动作捕捉技术的高门槛困境 在数字内容创作…...

突破运营商限制:中兴光猫配置文件解密工具完全指南

突破运营商限制&#xff1a;中兴光猫配置文件解密工具完全指南 【免费下载链接】ZET-Optical-Network-Terminal-Decoder 项目地址: https://gitcode.com/gh_mirrors/ze/ZET-Optical-Network-Terminal-Decoder 一、用户痛点解析&#xff1a;你是否正遭遇这些网络管理困境…...

告别PS!用WPS宏批量改图片尺寸的隐藏技巧(附JSA API避坑指南)

告别PS&#xff01;用WPS宏批量改图片尺寸的隐藏技巧&#xff08;附JSA API避坑指南&#xff09; 在电商运营、教育培训等日常工作中&#xff0c;批量处理图片是刚需。传统做法要么依赖Photoshop等专业软件&#xff08;学习成本高&#xff09;&#xff0c;要么手动逐个调整&…...

JeecgBoot低代码开发平台终极实战指南:从零开始构建企业级应用

JeecgBoot低代码开发平台终极实战指南&#xff1a;从零开始构建企业级应用 【免费下载链接】jeecg-boot jeecgboot/jeecg-boot 是一个基于 Spring Boot 的 Java 框架&#xff0c;用于快速开发企业级应用。适合在 Java 应用开发中使用&#xff0c;提高开发效率和代码质量。特点是…...

Docker Compose 多服务编排实战:从零搭建微服务架构

Docker Compose 多服务编排实战&#xff1a;从零搭建微服务架构 目录 为什么需要 Docker Compose&#xff1f;实战项目架构环境准备核心服务搭建高级特性&#xff1a;负载均衡与服务发现日志集中管理&#xff08;EFK 栈&#xff09;生产环境最佳实践常见问题排查 为什么需要 …...

终极指南:使用Rust工具uesave轻松编辑虚幻引擎游戏存档

终极指南&#xff1a;使用Rust工具uesave轻松编辑虚幻引擎游戏存档 【免费下载链接】uesave 项目地址: https://gitcode.com/gh_mirrors/ue/uesave uesave-rs是一款基于Rust语言开发的专业工具&#xff0c;专门用于读取和写入虚幻引擎的GVAS格式游戏存档文件。这款强大…...

机器人手臂相机 vs 抓手相机:5个关键区别与选型指南(附避坑技巧)

机器人手臂相机 vs 抓手相机&#xff1a;5个关键区别与选型指南&#xff08;附避坑技巧&#xff09; 在工业自动化领域&#xff0c;视觉引导系统如同机器人的"眼睛"&#xff0c;而相机安装位置的选择往往决定了整个系统的精度与可靠性。当工程师面对手臂相机&#xf…...

FPGA实战:3级CIC滤波器Verilog实现与仿真(附完整代码)

FPGA实战&#xff1a;3级CIC滤波器Verilog实现与仿真全解析 在数字信号处理领域&#xff0c;CIC&#xff08;Cascaded Integrator-Comb&#xff09;滤波器因其结构简单、运算高效的特点&#xff0c;成为多速率系统中的关键组件。本文将深入探讨3级CIC滤波器的Verilog实现细节&a…...