使用 goland 开发 golang 项目环境配置
方式1:使用 GOPATH 和 GOROOT
在 goland 中打开:Settings - Go,会看到 GOROOT、GOPATH,其相关解释与配置如下:
- GOROOT:对应 go 的安装路径,例如:D:\go\bin
- GOPATH:是我们的工作空间,保存 go 代码和第三方依赖包
GOPATH可以设置多个,其中,第一个将会是默认的包目录,使用 go get 下载的包都会在第一个 path 中的 src 目录下,使用 go install 时,在哪个GOPATH中找到了这个包,就会在哪个GOPATH下的bin目录生成可执行文件。
使用GOPATH时,Go会在以下为目录中搜索包:
- GOROOT/src:Go标准库
- GOPATH/src:应用自身代码和第三方依赖的代码
引入包时,路径从 src 的下一级文件地址开始写,编译器会自动从 src 下开始引入,如下:
// 自定义包的绝对路径为:D:\learing\goproject\src\gocode\testproject001\model
import ("fmt""gocode/testproject001/model"
)
在使用方式一导入自定义包时,报错如下:
main.go:5:2: package gocode/testproject001/model is not in std (D:\go\src\gocode\testproject001\model)
注意:该方式易出错,不建议使用
方式2:使用 go.mod
从 Go1.11 版本之后,已经不再推荐使用 GOPATH ,而是使用 GOMODULE 来管理程序文件。
查看项目的 go 配置
首先在终端下进入到项目目录,执行 go env 查看 go 的相关配置,具体如下:
D:\learing\goproject\src\gocode\testproject001\main>go envset GO111MODULE=on
set GOARCH=amd64
set GOBIN=
set GOCACHE=C:\Users\heliubei\AppData\Local\go-build
set GOENV=C:\Users\heliubei\AppData\Roaming\go\env
set GOEXE=.exe
set GOEXPERIMENT=
set GOFLAGS=
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOINSECURE=
set GOMODCACHE=D:\learing\goproject\pkg\mod
set GONOPROXY=
set GONOSUMDB=
set GOOS=windows
set GOPATH=D:\learing\goproject
set GOPRIVATE=
set GOPROXY=https://goproxy.io,direc
set GOROOT=D:\go
set GOSUMDB=sum.golang.org
set GOTMPDIR=
set GOTOOLCHAIN=auto
set GOTOOLDIR=D:\go\pkg\tool\windows_amd64
set GOVCS=
set GOVERSION=go1.21.3
set GCCGO=gccgo
set GOAMD64=v1
set AR=ar
set CC=gcc
set CXX=g++
set CGO_ENABLED=1
set GOMOD=NUL
set GOWORK=
set CGO_CFLAGS=-O2 -g
set CGO_CPPFLAGS=
set CGO_CXXFLAGS=-O2 -g
set CGO_FFLAGS=-O2 -g
set CGO_LDFLAGS=-O2 -g
set PKG_CONFIG=pkg-config
set GOGCCFLAGS=-m64 -mthreads -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=C:\Users\heliubei\AppData\Local\Temp\go-build3874952850=/tmp/go-build -gno-record-gcc-switches
如果 GO111MODULE = off 可通过如下命令进行修改,以确保 GO111MODULE = on
go env -w GO111MODULE = on
GO111MODULE 介绍
GO111MODULE 有三个值:off、on 和 auto,具体介绍如下:
1)GO111MODULE=off,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。
2)GO111MODULE=on,go命令行会使用modules,而一点也不会去GOPATH目录下查找。
3)GO111MODULE=auto,默认值,go命令行将会根据当前目录来决定是否启用module功能。这种情况下可以分为两种情形:
- 当前目录在GOPATH/src之外且该目录包含go.mod文件
- 当前文件在包含go.mod文件的目录下面
go.mod 使用
1)进入项目路径下执行 go mod init + 模块名 命令,在项目文件下创建一个 go.mod 文件,具体如下:
D:\learing\goproject>go mod init goprojectgo: creating new go.mod: module goproject
go: to add module requirements and sums:go mod tidy
我的项目目录为:D:\learing\goproject
2)引入自定义包时,路径应从 go.mod 所在的路径下写起
package mainimport ("fmt""goproject/src/gocode/testproject001/model"
)func main() {//创建person结构体示例:p := model.NewPerson("丽丽")p.SetAge(20)fmt.Println(p.Name)fmt.Println(p.GetAge())fmt.Println(*p)
}
自定义包的绝对路径为:D:\learing\goproject\src\gocode\testproject001\model
3)成功导入自定义包
相关文章:
使用 goland 开发 golang 项目环境配置
方式1:使用 GOPATH 和 GOROOT 在 goland 中打开:Settings - Go,会看到 GOROOT、GOPATH,其相关解释与配置如下: GOROOT:对应 go 的安装路径,例如:D:\go\binGOPATH:是我们…...
Linux宝塔面板搭建Discuz论坛, 并内网穿透实现公网访问
Linux宝塔面板搭建Discuz论坛, 并内网穿透实现公网访问 文章目录 Linux宝塔面板搭建Discuz论坛, 并内网穿透实现公网访问前言1.安装基础环境2.一键部署Discuz3.安装cpolar工具4.配置域名访问Discuz5.固定域名公网地址6.配置Discuz论坛 📷 江池…...
[git] 忽略已经提交的文件或文件夹
文件已经被Git跟踪 如果某个文件已经被Git跟踪过(即已经添加到版本控制中),.gitignore文件对该文件将不起作用。您需要使用以下命令将该文件从Git中移除: git rm --cached <文件> 支持文件夹 -r <文件夹>...
大模型增量预训练参数说明
在增量预训练过程中通常需要设置三类或四类参数,模型参数,数据参数,训练参数,额外参数。 下面分别针对这四种参数进行说明。 欢迎关注公众号 模型参数 model_type模型类型,例如bloom,llama,baichuan,qwen等。 model_name_or_path模型名称或者路径。 tokenizer_name_or…...
成为AI产品经理——模型评估概述
目录 一、模型宣讲和评估的原因 二、模型宣讲 三、模型评估 1. 重要特征 ① 特征来源 ②特征意义 2.选择测试样本 3.模型性能和稳定性 一、模型宣讲和评估的原因 刘海丰老师提到他们在做一个金融AI产品未注重模型指标,过于注重业务指标,导致产生…...
内存屏障与JVM指令
内存屏障是一种同步原语,用于确保在并发程序中,当一个线程对内存中的数据进行修改后,其他线程可以及时地获取到最新的数据。 内存屏障可以确保指令的执行具有原子性、可见性和顺序性。在JVM中,内存屏障通常通过插入一段特殊的指令…...
深入理解JVM 类加载机制
深入理解JVM 类加载机制 虚拟机如何加载Class文件? Class文件中的信息进入到虚拟机后会发生什么变化? 类加载机制就是Java虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机…...
SpringCloud微服务 【实用篇】| Eureka注册中心、Ribbon负载均衡
目录 一:Eureka注册中心 1. Eureka原理 2. 动手实践 ①搭建EurekaServer ②服务注册 ③服务发现 二:Ribbon负载均衡 1. 负载均衡原理 2. 负载均衡策略 3. 懒加载 tips:前些天突然发现了一个巨牛的人工智能学习网站,通俗…...
SpringSecurity+JWT权限认证
SpringSecurity默认的是采用Session来判断请求的用户是否登录的,但是不方便分布式的扩展 虽然SpringSecurity也支持采用SpringSession来管理分布式下的用户状态,不过现在分布式的还是无状态的Jwt比较主流 一、创建SpringBoot的项目 spring-boot-starte…...
Tomcat实现WebSocket即时通讯 Java实现WebSocket的两种方式
HTTP协议是“请求-响应”模式,浏览器必须先发请求给服务器,服务器才会响应该请求。即服务器不会主动发送数据给浏览器。 实时性要求高的应用,如在线游戏、股票实时报价和在线协同编辑等,浏览器需实时显示服务器的最新数据&#x…...
安全框架springSecurity+Jwt+Vue-2(后端开发)
一、创建项目及配置 ①:创建新的项目及常用包 ②:引入依赖和配置 devtools:项目的热加载重启插件 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId&…...
6.1.webrc媒体协商
那今天呢?我们来看一下y8 rtc的媒体协商,那实际上在我们之前的课程中呢?我已经向你介绍过y8 rtc的媒体协商了。只不过呢,角度是不一样的,在之前介绍外边tc媒体协商的时候呢,我们是从应用的角度来看。那web …...
Android WebView中打开外部超链接无反应
什么是外部超链接? 相当于是跳转到一个新的网址页面 解决方案选择: 1.在WebView内部中打开外部超链接 设置setSupportMultipleWindows为false即可 webView.settings.setSupportMultipleWindows(false)2.打开系统浏览器打开新页面 设置setSupportMul…...
JMeter集结点的使用场景以及如何使用?
JMeter是一个开源的负载测试工具,它被广泛用于测试应用程序、Web服务和网络协议等的性能。在JMeter中,集结点(JMeter Cluster)是一种分布式测试环境,它允许多个JMeter实例同时工作来模拟高并发负载。 使用集结点的场景…...
2023最新面试题
第一家 自我介绍介绍一下最近一个(最熟悉的一个)项目 项目几个人在负责 项目实际在用了吗,哪个平台在用啊(在哪里上线) 你认为你自己做的项目里面哪个比较难做呢,项目里面有什么难点?常用的是V…...
shell 脚本的函数和数组
函数 —— 封装的一个公式:sin、cos、tan —— 函数为脚本的别名 —— 函数就是一个功能模块,在函数中写执行的命令即可;使用函数可以避免代码重复,增加可读性,简化脚本,使用函数可以将大的工程分割为若…...
【RocketMq系列-02】RocketMq的架构解析和高性能设计
RocketMq系列整体栏目 内容链接地址【一】RocketMq安装和基本概念https://zhenghuisheng.blog.csdn.net/article/details/134486709【二】RocketMq的架构解析和高性能设计/font>https://zhenghuisheng.blog.csdn.net/article/details/134559514 RocketMq的架构解析和高性能设…...
【数据结构/C++】线性表_单链表的基本操作
#include <iostream> using namespace std; // 2. 单链表 // ElemType 的定义 typedef int ElemType; typedef struct LNode {ElemType data;struct LNode *next; } LNode, *LinkList; // 初始化单链表 bool InitList(LinkList &L) {L (LNode *)malloc(sizeof(LNode…...
flink1.13.6版本的应用程序(maven版)
问题 想要一个指定flink版本的java计算任务hello world最简工程。 解决 mvn archetype:generate \-DarchetypeGroupIdorg.apache.flink \-DarchetypeArtifactIdflink-quickstart-java \-DarchetypeVersion1.13.6这里直接使用官方mave模版工程,指…...
深度学习之四(循环神经网络Recurrent Neural Networks,RNNs)
概念 循环神经网络(Recurrent Neural Networks,RNNs)是一类专门用于处理序列数据的神经网络,它在处理时考虑了序列数据的顺序和上下文信息。RNNs 在自然语言处理、时间序列分析、语音识别等领域得到广泛应用。 1. 基本结构: RNN 的基本结构包含一个或多个循环单元,每个…...
大模型校准技术:提升AI输出可靠性的关键方法
1. 大模型校准技术概述在自然语言处理领域,模型校准技术正逐渐成为确保AI系统输出可靠性的关键环节。作为一名长期从事NLP技术落地的从业者,我深刻体会到:一个能准确评估自身预测置信度的AI系统,远比单纯追求高准确率的"黑箱…...
Mermaid.js饼图与柱状图:告别数据可视化困扰的3步解决方案
Mermaid.js饼图与柱状图:告别数据可视化困扰的3步解决方案 【免费下载链接】mermaid Generation of diagrams like flowcharts or sequence diagrams from text in a similar manner as markdown 项目地址: https://gitcode.com/GitHub_Trending/me/mermaid …...
【20年嵌入式老兵亲授】:C语言裸机编程在工业边缘节点中规避内存泄漏与时序抖动的7个硬核技巧
更多请点击: https://intelliparadigm.com 第一章:裸机环境下的C语言编程本质与工业边缘节点特殊约束 在工业边缘计算场景中,裸机(Bare-metal)C编程并非仅是“不带操作系统的C”,而是对硬件时序、内存拓扑…...
这个AI插件直接“接管编辑器”?Unity开发要变天了!
在过去两年里,AI 工具几乎席卷了整个开发领域,但对于 Unity 开发者来说,大多数 AI 插件仍停留在“聊天工具”的层面:写点示例代码、解释概念,却无法真正融入项目。 而 Brody AI – Your Agentic Developing Homie 的出…...
LLM性别偏见评估:Wino Bias测试与实践
1. 项目背景与核心目标最近在自然语言处理领域,大型语言模型(LLM)在各类基准测试中展现出惊人表现。但作为从业者,我们更关心这些模型在实际应用中可能存在的隐性偏见。这个项目聚焦于一个具体但重要的问题:如何系统评估LLM在性别-职业刻板印…...
2026年招牌广告灯箱实力厂商推荐,聚隆运灯箱为何成为连锁品牌首选,赋能商业未来的专业解决方案
行业定位:招牌广告灯箱在商业视觉传达中的核心价值在当今商业环境中,招牌广告灯箱不仅是店铺门面的视觉标识,更是品牌形象传递的重要载体。作为广告行业的基础设施,高品质的招牌广告灯箱能有效提升品牌辨识度,增强夜间…...
黑马点评-短信登陆笔记
黑马点评 - 短信登录与 Redis 鉴权 项目:黑马点评 Day1 标签:#Redis #SpringBoot #鉴权 #拦截器 关联:苍穹外卖-JWT登录 Spring Session ThreadLocal 一、为什么用 Redis 替代 Session Session 在分布式下的核心问题 Session 存在单台服务器…...
Python处理中文文件报错?别慌,教你用chardet库自动检测编码,告别UnicodeDecodeError
Python编码侦探指南:用chardet智能破解中文文件乱码困局 每次打开来源不明的文本文件时,那个令人头疼的UnicodeDecodeError就像个不速之客。作为Python开发者,你可能已经厌倦了反复猜测文件编码的游戏——GBK、UTF-8还是BIG5?今天…...
终极APK安装器:Windows原生运行安卓应用的完整指南
终极APK安装器:Windows原生运行安卓应用的完整指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer APK安装器是一款专为Windows系统设计的安卓应用安装工具…...
深入理解yt-dlp-gui的MVVM架构:WPF桌面应用开发最佳实践
深入理解yt-dlp-gui的MVVM架构:WPF桌面应用开发最佳实践 【免费下载链接】yt-dlp-gui Windows GUI for yt-dlp 项目地址: https://gitcode.com/gh_mirrors/yt/yt-dlp-gui yt-dlp-gui是一款基于WPF技术栈构建的Windows桌面应用,为命令行工具yt-dlp…...
