【Go】Goland项目配置运行教程

Golang项目配置运行教程

  • 1.安装Golang
    • 下载安装包
    • 安装
  • 2.Goland配置
    • 2.1 环境
    • 2.2 goland配置
      • 2.2.1 没有makefile的情况
      • 2.2.2 有makefile的情况
  • 3.跨平台项目
  • 4.补充

注意,本项目描述的是git clone下来的Golang项目配置运行教程,并不是从头创建一个Golang项目并运行

作者是在win11系统上使用goland进行的实践,其他操作系统和比编辑器请谨慎参考。

1.安装Golang

下载安装包

打开golang官方网站All releases,下载自己需要且符合自己操作系统及指令集的版本

在这里插入图片描述
注意一下从右往左第二列,已经告诉什么指令集架构使用什么安装包了,现在绝大多数windows电脑都是x86-64,当然,也可以兼容x86,注意不要把amd和arm搞混了

不要因为自己电脑是intel的不敢下载amd64,这只是因为amd先搞出来的,所以x86-64也叫amd64

简单指令集是 arm 架构的 CPU 主要有高通、三星、苹果、华为海思、联发科等公司。

复杂指令集是 x86、x64(也叫 x86-64, amd64) 两种架构, 该架构 CPU 主要是 Intel 和 AMD 两家公司

安装

作者下载amd64的压缩包版本,只需要下载解压后配置环境变量

打开环境变量窗口新增
GOROOT安装的目录
在这里插入图片描述
在Path中新增
在这里插入图片描述

2.Goland配置

2.1 环境

在这里插入图片描述
go的依赖管理演化:GOPATH -> GO Vendor -> Go Module

现在绝大多数项目是使用Go Module,这里也默认使用Go Module

Goland的Module相关环境变量

  • GOPROXY=https://goproxy.cn,direct # 代理
  • GONOPROXY=xxx # xxx网站不通过代理
  • GOPRIVATE=xxx # 私有仓库的依赖代理

可以通过命令go env查看环境,注意如果有网址也不要加双引号

存在go.mod文件的情况下,直接go mod tiny即可
go.mod
在这里插入图片描述
注意私有仓库必须得有访问权限

注意,windows下go mod安装的包的存储路径默认为

C:\Users\你的用户名\go\pkg\mod

go mod 未提供删除包的命令,可以选择到该目录下直接删除

2.2 goland配置

2.2.1 没有makefile的情况

每次创建项目之后,我们都需要对 Goland 进行一些配置,在 Goland 的右上方找到“Add Configuration”并单击。

在弹出的窗口中点击“+”,并在下拉菜单中选择“Go Build”。

点击“Go Build”之后,在窗口中填写对应的信息,如下所示。

在这里插入图片描述

上图中有以下几点需要注意:
名称:为本条配置信息的名称,可以自定义,也可以使用系统默认的值;
Run kind:这里需要设置为“Directory”;
Directory:用来设置 main 包所在的目录,不能为空;
Output directory:用来设置编译后生成的可执行文件的存放目录,可以为空,为空时默认不生成可执行文件;
Working directory:用来设置程序的运行目录,可以与“Directory”的设置相同,但是不能为空。
提示:除了上面提到的几点外,其余的配置项使用系统的默认值即可,无需修改。

2.2.2 有makefile的情况

首先,windows下是不能直接运行makefile文件当中的命令的

参考https://blog.csdn.net/weixin_53795646/article/details/128387026安装Chocolatey,再用Chocolatey安装make

需要注意的是,如果不设置环境变量,需要到chocolatery安装目录下执行命令

C:\ProgramData\chocolatey\bin>choco install make

在这里插入图片描述

打开makefile文件,里面命令可以直接点击运行
在这里插入图片描述
这上面go mod涉及到升级操作,谨慎运行,建议有go.mod的情况下只运行go mod tidy

  • 点击mod左边箭头进行依赖整理
  • 然后点击build左边箭头进行编译
  • 最后点击run左边箭头运行项目

3.跨平台项目

有时候,项目涉及多平台,一些系统调用相关的代码不一定通用,有些可以选择性编译,但有些就只能在Linux运行了

//go:build !windows
// +build !windowspackage gracefulimport ("os""syscall"
)var RestartSignals = []os.Signal{syscall.SIGUSR1}

4.补充

谨防go.mod被误更改,Goland
Ctrl+Shift+A可以打开万能窗口,输入“差异”可以打开差异窗口比较不同文件

在这里插入图片描述

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

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

相关文章

redis常用五种数据类型详解

目录 前言: string 相关命令 内部编码 应用场景 hash 相关命令 内部编码 应用场景 list 相关命令 内部编码 应用场景 set 相关命令 内部编码 应用场景 Zset 相关命令 内部编码 应用场景 渐进式遍历 前言: redis有多种数据类型&…

Cookie 和 Session 的工作流程

目录 一、Cookie是什么? 二、Session是什么? 三、Cookie的工作流程 四、Session的工作流程 五、Session和Cookie的区别和联系 一、Cookie是什么? Cookie是一种在网站和用户之间交换信息的机制。它是由Web服务器发送给用户浏览器的小型文本文件&#xff…

【leetcode 力扣刷题】反转链表+递归求解

反转链表递归求解 206. 反转链表解法①:取下一个节点在当前头节点前插入解法②:反转每个节点next的指向解法③:递归 92.反转链表Ⅱ反转left到right间节点的next指向 234.回文链表解法①:将链表元素存在数组中,在数组上…

解决idea登录github copilot报错问题

试了好多方案都没用,但是这个有用, 打开idea-help-edit custonm vm options 然后在这个文件里面输入 -Dcopilot.agent.disabledtrue再打开 https://github.com/settings/copilot 把这个设置成allow,然后重新尝试登录copilot就行就行 解决方…

【JVM 内存结构 | 程序计数器】

内存结构 前言简介程序计数器定义作用特点示例应用场景 主页传送门:📀 传送 前言 Java 虚拟机的内存空间由 堆、栈、方法区、程序计数器和本地方法栈五部分组成。 简介 JVM(Java Virtual Machine)内存结构包括以下几个部分&#…

countDown+react+hook

道阻且长,行而不辍,未来可期 知识点一: new Date().getTime()可以得到得到1970年01月1日0点零分以来的毫秒数。单位是毫秒 new Date().getTime()/1000获取秒数1分钟60秒,1小时60分钟1hour:60*60>单位是秒 60*60*1000>单位…

Android 9.0 Vold挂载流程解析(下)

Android 9.0 Vold挂载流程解析(上) 前言 上一篇介绍了Android 文件系统中Vold挂载机制的总体框架,我们分析了vod进程的main.cpp.接下来我们分析下存储卡挂载和卸载的流程。 存储卡挂载 在上篇文章文章提到,监听驱动层挂载和卸…

opencv简单使用

cv2库安装, conda install opencv-python注意cv2使用时,路径不能有中文。(不然会一直’None’ _ update # 处理中文路径问题 def cv_imread(file_path): #使用之前需要导入numpy、cv2库,file_path为包含中文的路径return cv2.imd…

蓝蓝设计ui设计公司作品--泛亚高科-光伏电站控制系统界面设计

泛亚高科(北京)科技有限公司(以下简称“泛亚高科”),一个以实时监控、高精度数值计算为基础的科技公司, 自成立以来,组成了以博士、硕士为核心的技术团队,整合了华北电力大学等高校资源,凭借在电…

MFC——base编码和json数据

目录 1. JSON是什么 2. base64是什么 Base64是一种编解码算法 1. JSON是什么 JSON 是一种数据格式。采用完全独立于语言的文本格式, 因为易读, 易写, 易解析的特性成为理想的数据交换语言。主要有三种类型的值:简单值(字符串, 数字, 布尔, null), 对象, 数组。 长这样的数…

2023前端面试笔记 —— HTML5

系列文章目录 内容链接2023前端面试笔记HTML5 文章目录 系列文章目录前言一、HTML 文件中的 DOCTYPE 是什么作用二、HTML、XML、XHTML 之间有什么区别三、前缀为 data- 开头的元素属性是什么四、谈谈你对 HTML 语义化的理解五、HTML5 对比 HTML4 有哪些不同之处六、meta 标签有…

Java实现一个简单的图书管理系统(内有源码)

简介 哈喽哈喽大家好啊,之前作者也是讲了Java不少的知识点了,为了巩固之前的知识点再为了让我们深入Java面向对象这一基本特性,就让我们完成一个图书管理系统的小项目吧。 项目简介:通过管理员和普通用户的两种操作界面&#xff0…

在Ubuntu上安装和设置RabbitMQ服务器,轻松实现外部远程访问

文章目录 前言1.安装erlang 语言2.安装rabbitMQ3. 内网穿透3.1 安装cpolar内网穿透(支持一键自动安装脚本)3.2 创建HTTP隧道 4. 公网远程连接5.固定公网TCP地址5.1 保留一个固定的公网TCP端口地址5.2 配置固定公网TCP端口地址 前言 RabbitMQ是一个在 AMQP(高级消息队列协议)基…

【Python原创毕设|课设】基于Python Flask的上海美食信息与可视化宣传网站项目-文末附下载方式以及往届优秀论文,原创项目其他均为抄袭

基于Python Flask的上海美食信息与可视化宣传网站(获取方式访问文末官网) 一、项目简介二、开发环境三、项目技术四、功能结构五、运行截图六、功能实现七、数据库设计八、源码获取 一、项目简介 随着大数据和人工智能技术的迅速发展,我们设…

Git如何操作本地分支仓库?

基本使用TortoiseGit 操作本地仓库(分支) 分支的概念 几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离开来,避免影响开发主线。多线程开发,可以同时开启多个任务的开发,多个任务之间互不影响。 为何要…

【洛谷】P1678 烦恼的高考志愿

原题链接:https://www.luogu.com.cn/problem/P1678 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 将每个学校的分数线用sort()升序排序,再二分查找每个学校的分数线,通过二分找到每个同学估分附近的分数线。 最后…

【接口优化方案解决】

文章目录 前言1、批量插入或者查询数据库2、异步思想 耗时操作,考虑放到异步3、空间换时间思想:恰当使用缓存。4. 预取思想:提前初始化到缓存5、借用线程池6. 事件回调思想:拒绝阻塞等待。7、锁粒度避免过粗8、切换存储方式&#…

Spring Clould 网关 - Gateway

视频地址:微服务(SpringCloudRabbitMQDockerRedis搜索分布式) Gateway网关-网关作用介绍(P35) Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2…

java八股文面试[JVM]——JVM内存结构

参考: JVM学习笔记(一)_卷心菜不卷Iris的博客-CSDN博客 JVM是运行在操作系统之上的,它与硬件没有直接的交互 JVM内存结构: 方法区:存储已被虚拟机加载的类元数据信息(元空间) 堆:存放对象实…

LVS集群 (NET模式搭建)

目录 一、集群概述 一、负载均衡技术类型 二、负载均衡实现方式 二、LVS集群结构 一、三层结构 二、架构对象 三、LVS工作模式 四、LVS负载均衡算法 一、静态负载均衡 二、动态负载均衡 五、ipvsadm命令详解 六、搭建实验流程 一、首先打开三台虚拟机 二、…