1. go 环境

1. golang的编译与运行

1.1 编译go build

  1. 编译当前目当目录
go build
或
go build .
  1. 编译指定文件或目录
#编译main文件,将会生成可指行文件
go build ./main.go
#编译指定文件pl,不会产生编译文件,仅进行编译查检查
go build ./pl
  1. main包有多个文件的情况,指定文件编译main包
#编译时必须指定main包的所有文件
go build ./main.go ./hello.go
  1. 编译时指定编译结果输出
go build -o ./out/app ./main.go ./hello.go

1.2 运行 go run

#直接运行
go run
#指定main包所有关联文件
go run ./main.go ./hello.go
#指定main包所在目录
go run .

1.3 交叉编译

交叉编译需要修改三个环境变量:GOOS、GOARCH、CGO_ENABLED
GOOS:目标平台的操作系统(drwin、freebsd、linux、windows)
GOARCH:目标平台的体系架构32位不是64位(386、adm54、arm)
CGO_ENABLED:是否启用CGO,交叉编译不支持CGO,所以要禁用它

1.windows 编译 Linux 或 Mac 可执行程序
# 设置环境变量
$Env:CGO_ENABLED=0;$Env:GOARCH="amd64";$Env:GOOS="linux"
$Env:CGO_ENABLED=0;$Env:GOARCH="amd64";$Env:GOOS="darwin"
# 编译并输出app文件
go build -o ./out/app .
# mac 编译 linux 或 windows 可执行程序
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o ./out/app .
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o ./out/app .
# Linux 编译 mac 与 windows 可执行程序
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 -o ./out/app .
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 -o ./out/app .

2. go mod 依赖管理

2.1 go.mod 文件

# 禄始化代码
go mod init gomod
//指定 module 名
module gomod
//指定 go sdk 版本
go 1.23.1
//当前module(项目)依赖的包,通过 require 指定
require(github.com/bytedance/sonic v1.8.0 // indirect
)
//排除第三方包,在确认第三方依赖某个版本存在bug的情况下,可以采用排除的方式
exclude(
// dependency latest
)
//修改依依赖包的路径或版本,当依赖包发生迁移或者原始包访问不到需要使用代理进,
//通过 replace 替换原始包的咱径和版本
//可以将依赖包替换为本地包
replace(
//	source latest => target latest
)
//当前项目作为其它的项目的依赖时,如果某个版本出现问题,撤销该版本
retract(v1.0.0v1.0.2
)

2.2 go mod 命令

#将模块下载到本地缓存,需要指定模块路径及版本号
go mod download github.com/gin-gonic/gin@v1.9.0
#初始化一个新的模块到当前目录
go mod init gomodcase
#依赖对齐:添加缺少的依赖,删除未使用的赖
go mod tidy
#通过工具或脚本编辑go.mod
#添加依赖项
go mod edit -require="github.com/gin-gonic/gin@v1.9.0"
#替换路径,old[@version] 替换成 new[@version]
go mod edit -replace="golang.org/x/crypto@v0.0.0=github.com/golang/crypto@v1.2.3"
#排除第三方依赖的某个版本
go mod edit -exclude="github.com/gin-gonic/gin@v1.9.0"
#当前项目作为其他项目的依赖时,添加撤回版本用于排除有问题的版本
go mod edit -retract="v1.1.0"
#删除撤回版本记录
go mod edit -dropretract="v1.1.0"#根据go.mod中的依赖项制作vendor副本,有了vendor副本,项目将不再依赖本地缓存
go mod vendor
#验证依赖是否正确
go mod verify
#返回对指定模块的依赖关系最短路径,解释为什么依赖指定包
go mod why github.com/gin-contrib/sse

3. go install/get/clean

#安装可执行插件
go install github.com/google/gops@latest
#获取模块信息并更新go.mod文件,若本地缓存没有该模块,则下载模块;若有则直接引用
go get github.com/gin-gonic/gin@v1.9.0
#更新模块依赖,并更新go.mod
go get -u github.com/gin-gonic/gin@v1.9.0
#清理临时目录中的文件,age:清理整个module下载的缓存文件
go clean -mocache

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

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

相关文章

gradio交互式界面部署

gradio交互式界面部署 示例:http://xxxxx:1111/api/v1/my_model 为模型服务api,传入参数为: {"company": company,"name": name,"t_date": t_date,"amount": amount,"img1_path": img1_…

LeetCode Hot100 C++ 哈希 128.最长连续序列

128.最长连续序列 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续)的长度。 给定一个未排序的整数数组 nums ,找出数字连续的最长序列(不要求序列元素在原数组中连续&#xff0…

怎么测试射频芯片质量的好坏?

无论是手机通信,还是卫星导航,射频芯片都是其核心组件之一。本文将探讨如何准确判断射频芯片的质量,以确保技术设备的稳定运行。 1. 外观检查 检查射频芯片是否有破损、引脚断裂、缺陷等。 2. 电气参数测试 对射频芯片的输入输出阻抗、功耗、…

RabbitMQ:交换机详解(Fanout交换机、Direct交换机、Topic交换机)

♥️作者:小宋1021 🤵‍♂️个人主页:小宋1021主页 ♥️坚持分析平时学习到的项目以及学习到的软件开发知识,和大家一起努力呀!!! 🎈🎈加油! 加油&#xff01…

伊犁云计算22-1 rhel8 dhcp 配置

1 局域网搭建 2 yum 配置 这个参考前面 不说 3 dnf 安装dhcp 好我们废话不说开始安装。理论看书去 进入 dhcp.conf 配置 重启dhcpd 不能报错!!!! 我们在客户机上做测试 全局的dhcp关闭 很明显我们的客户机获取到192.16…

libreoffice word转pdf

一、准备一个word文件 运行: cd /root libreoffice --headless --convert-to pdf --outdir /root/output doc1.docx 发现中文乱码: 此时我们需要给linux 上添加中文字体: centos7 添加中文字体 再次运行正常: libreoffice --h…

如何使用Postman搞定带有token认证的接口实战!

现在许多项目都使用jwt来实现用户登录和数据权限,校验过用户的用户名和密码后,会向用户响应一段经过加密的token,在这段token中可能储存了数据权限等,在后期的访问中,需要携带这段token,后台解析这段token才…

基于SpringBoot社区疫情信息管理系统的设计和实现

文未可获取一份本项目的java源码和数据库参考。 选题的意义 保护好人民群众的基本安全,贯彻党的领导下中国一盘棋的基本准则。将病毒隔绝在外,信息系统的存在显得至关重要,应对新型冠状病毒肺炎疫情治理的实践背景。实时关注更新疫情动态&a…

支持K歌音箱方案应用的高性能 32 位蓝牙音频应用处理器-BP1048B2

DSP是一类嵌入式通用可编程微处理器,主要用于实现对信号的采集、识别、变换、增强、控制等算法处理,是各类嵌入式系统的“大脑”应用十分广泛。BP1048B2是一款高性能DSP音频数字信号处理器芯片,能实现多种音频功能如混响、均衡、滤波、反馈抑…

Vue 自定义指令实现权限控制

一. 引言 Vue.js 提供了一种简单、灵活的方式来创建交互式的用户界面。在 Vue.js 中,指令是一种特殊的属性,可以附加到 HTML 元素上以执行一些操作。我们可以使用自定义指令来实现各种功能,比如:权限控制、自动聚焦、拖动指令等等…

通过docker启动ElasticSearch后为ElasticSearch设置用户和密码

文章目录 0. 前言1. 没有设置用户名和密码的情况2. 为ElasticSearch设置用户名和密码2.1 进入 ElasticSearch 容器内部2.2 修改 ElasticSearch 的配置文件2.3 设置用户名和密码 3. 在 kibana 容器中指定访问 ElasticSearch 的用户名和密码4. 设置用户名和密码后的情况4.1 访问 …

[51单片机] 简单介绍 (一)

文章目录 1.单片机介绍2.单片机内部三大资源3.单片机最小系统4.STC89C52RC单片机 1.单片机介绍 兼容Intel的MCS-51体系架构的一系列单片机。 STC89C52:8K FLASH、512字节RAM、32个IO口、3个定时器、1个UART、8个中断源。 单片机简称MCU单片机内部集成了CPU、RAM、…

Maxim(美信)—MAX20079AATP/VY PMIC芯片详解

写在前面 本系列文章主要讲解Maxim(美信)—MAX20079AATP/VY PMIC芯片的相关知识,希望能帮助更多的同学认识和了解MAX20079AATP/VY芯片。 若有相关问题,欢迎评论沟通,共同进步。(*^▽^*) PMIC是Power Management Int…

CC面试准备

半导体基础 半导体是介于导体和绝缘体之间的一种介质,在不同条件下表现出不同的导电性或者不导电特性, 电子半导体器件材料大部分为硅,锗等元素 本征半导体:完全不含杂质的纯净半导体,因为不含杂质,其中…

QT widgets 窗口缩放,自适应窗口大小进行布局

1. 窗口布局 2. 尺寸策略:扩展 Fixed (固定): 行为:控件的大小是固定的,不会随着窗口大小的变化而改变。它的大小由控件的 sizeHint() 返回的值决定。 适用场景:当你希望控件的大小保持不变,不随布局调整时使用&#x…

RAG+Agent人工智能平台:RAGflow实现GraphRA知识库问答,打造极致多模态问答与AI编排流体验

1.RAGflow简介 全面优化的 RAG 工作流可以支持从个人应用乃至超大型企业的各类生态系统。大语言模型 LLM 以及向量模型均支持配置。基于多路召回、融合重排序。提供易用的 API,可以轻松集成到各类企业系统。支持丰富的文件类型,包括 Word 文档、PPT、exc…

前端报错401 【已解决】

前端报错401 【已解决】 在前端开发中,HTTP状态码401(Unauthorized)是一个常见的错误,它表明用户试图访问受保护的资源,但未能提供有效的身份验证信息。这个错误不仅关乎用户体验,也直接关系到应用的安全性…

Uniapp时间戳转时间显示/时间格式

使用uview2 time 时间格式 | uView 2.0 - 全面兼容 nvue 的 uni-app 生态框架 - uni-app UI 框架 <text class"cell-tit clamp1">{{item.create_time}} --- {{ $u.timeFormat(item.create_time, yyyy-mm-dd hh:MM:ss)}} </text>

OpenAI发布多语言MMMLU数据集;火山引擎发布AI视频生成大模型豆包

&#x1f989; AI新闻 &#x1f680; OpenAI发布多语言MMMLU数据集 摘要&#xff1a;OpenAI在Hugging Face上推出了多语言大规模多任务语言理解&#xff08;MMMLU&#xff09;数据集&#xff0c;旨在评估大型语言模型在各种语言和任务中的表现。该数据集涵盖广泛的主题与学科…

记某学校小程序漏洞挖掘

前言&#xff1a; 遇到一个学校小程序的站点&#xff0c;只在前端登录口做了校验&#xff0c;后端没有任何校验&#xff0c;奇葩弱口令离谱进去&#xff0c;站点里面越权泄露敏感信息&#xff0c;接管账号等漏洞&#xff01;&#xff01;&#xff01; 渗透思路 1.绕过前端 …