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

go day 01

go day 01 配置go环境

install go on D:\huang\lang\go\
D:\huang\lang\go\bin\go xxx.go
# D:\huang\lang\go\bin 设置到环境变量
go
go version
# 创建任意一个目录,创建三个文件夹
# D:\huang\lang\goProject
bin、pkg、src
# 创建三个系统环境变量 GOROOT GOPATH GOBIN
# GOROOT D:\huang\lang\go 编译器的安装路径
# GOPATH D:\huang\lang\goProject 实际项目的目录
# GOBIN D:\huang\lang\goProject\bin go install 实际编译的二进制结果存放的目录
echo %GOROOT% %GOPATH% %GOBIN%
# 设置代理,这样在 Vscode 安装 package 时就不会失败。
go env -w GOPROXY=https://goproxy.cn,direct
# 测试是否生效
D:\huang\lang\goProject\src\crm
# app.go
package main
import "fmt"

func main(){
	fmt.Println("Hello world")
}
# go install app.go  
## D:\huang\lang\goProject\bin\app.exe
# go run app.go 
# go build 
## 没成功 go build -o xx.exe go: go.mod file not found in current directory or any parent directory; see 'go help modules' 百度一下
## go env -w GO111MODULE="on"
## cd D:\huang\lang\goProject\
## go mod init crm # -> D:\huang\lang\goProject\go.mod
## go build 
## go build -o xx.exe
D:\huang\lang\goProject\src\utils
# page.go
package utils

func Add(n1 int, n2 int) int {
	return 2222
}
## go mod init utils
go install # 包文件
# go build # bin 
# go install 的时候包名要从$GOPATH/src下面的目录开始写。 比如在src下面有一个项目project,下面有个tools包,应该写成这样: go install project/tools 按照上面这个原则,就会在$GOPATH/pkg下面生成a文件了。
# cd D:\huang\lang\goProject\src
# go install utils\page.go

go build:用于测试编译包,在项目目录下生成可执行文件(有 main 包)。

go install:主要用来生成库和工具。一是编译包文件(无 main 包),将编译后的包文件放到 pkg 目录下( G O P A T H / p k g )。二是编译生成可执行文件(有 m a i n 包),将可执行文件放到 b i n 目录( GOPATH/pkg)。二是编译生成可执行文件(有 main 包),将可执行文件放到 bin 目录( GOPATH/pkg)。二是编译生成可执行文件(有main包),将可执行文件放到bin目录(GOPATH/bin)。

# cd D:\huang\lang\goProject\src\crm
go build -o aa.exe
aa.exe
# cd D:\huang\lang\goProject\src\crm\test
# 不管是 go build 还是 go build test1.go go build test2.go 都不会产生额外文件。
# cd D:\huang\lang\goProject\src\crm
go install
这个时候产生 bin 目录以及 hello.exe 文件【这里有没有发现 之前在 hello 目录下的 hello.exe 自动被删了】
cd test
注意:go install 的时候包名要从 $GOPATH/src 下面的目录开始写。 比如在 src 下面有一个项目 project,下面有个 tools 包,应该写成这样: go install project/tools 按照上面这个原则,就会在 $GOPATH/pkg 下面生成 a 文件了
cd D:\huang\lang\goProject\src\
go install crm\test
go env -w GO111MODULE=off
# go引入自建包名报错 package XXX is not in std
根据配置信息,问题出在Go Modules的开启或关闭上。

当你运行 go env -w GO111MODULE= 时,它将清除 GO111MODULE 环境变量的设置,将其重置为空字符串。这将导致Go工具认为你的项目不使用Go Modules,因此它会尝试在GOPATH中查找包,但无法找到你的项目中的非标准库包。

当你运行 go env -w GO111MODULE=off 时,它将显式地将 GO111MODULE 设置为 "off",这意味着你禁用了Go Modules,并且Go工具会尝试在GOPATH中查找包。
# go env -w GO111MODULE=off
http://www.dtcms.com/a/112477.html

相关文章:

  • Nyquist插件基础:LISP语法-数据类型
  • 【每日算法】Day 17-1:位图(Bitmap)——十亿级数据去重与快速检索的终极方案(C++实现)
  • Java枚举如何实现自增赋值呢?
  • 第一讲—函数的极限与连续(一)
  • TiDB 数据库8.1版本编译及部署
  • 网络编程—Socket套接字(TCP)
  • 从零实现APP实时聊天功能:WebSocket+离线消息+多媒体传输全解析
  • deepseek v3-0324实现SVG 编辑器
  • 345-java人事档案管理系统的设计与实现
  • K8s私有仓库拉取镜像报错解决:x509 certificate signed by unknown authority
  • WORD+VISIO输出PDF图片提高清晰度的方法
  • MySQL系统库汇总
  • 面向中小企业的ThingsBoard轻量级部署与运维方案(源码+论文+部署讲解等)
  • 图扑可视化点亮智慧城市垃圾分类新未来
  • UBUNTU编译datalink
  • Xilinx系列FPGA实现HDMI2.1视频收发,支持8K@60Hz分辨率,提供2套工程源码和技术支持
  • Python每日一题(15)
  • 考研真题:有一个请求分页式虚拟存储器系统,分配给某进程3个物理块,开始时内存中预装入第1.2.3个页面
  • Future接口详细介绍
  • 记一次差点通宵的bug(内网没bug,外网有bug)
  • Uni-app PDF Annotation plugin library online API examples
  • Mysql 行级锁在什么样的情况下会升级为表级锁?
  • Lua函数与表+Lua子文件加载与元表
  • 4.5/Q1,GBD数据库最新文章解读
  • ✅ 2025最新 | YOLO 获取 COCO 指标终极指南 | 从标签转换到 COCOAPI 评估 (训练/验证) 全覆盖【B 站教程详解】
  • NHANES指标推荐:DI-GM
  • ARM 协处理器(Coprocessor)功能及用法详解
  • vue3 字符串里面有变量 反引号(``)来定义模板字符串,并且hello,world来简单说明
  • 修改Jupyter Notebook主目录文件夹
  • WHAT - CSS 伪元素