go语言编译文件踩坑

news2024/9/23 13:24:17

目录

        1  no required module provides package xxx  go.mod file not found in current directory or any parent directory; see 'go help modules

方式1  执行 go env -w GO111MODULE=auto后再编译

方式2 创建go.mod

2  报错syscall.go:84:16: undefined: unsafe.Slice

3 build constraints exclude all Go files in xxx

4 GoLand IDE配置 GOROOT 时出现 "The selected directory is not a valid home for Go Sdk" 


1  no required module provides package xxx  go.mod file not found in current directory or any parent directory; see 'go help modules

比如这里

main.go:13:2: no required module provides package github.com/gonutz/ide/w32: go.mod file not found in current directory or any parent directory; see 'go help modules'

main.go:14:2: no required module provides package golang.org/x/sys/windows: go.mod file not found in current directory or any parent directory; see 'go help modules

报错原因是因为当前go语言版本默认使用go mod管理go的依赖,即便在你的GOPATH中有对应的依赖包也会报错

可以执行go env -w GO111MODULE=off 关闭当前默认的依赖包管理方式,执行后编译当前文件的寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找

了解go env -w GO111MODULE=off  和 go env -w GO111MODULE=auto 还有 go env -w GO111MODULE=on的区别,可以参考解决go: go.mod file not found in current directory or any parent directory; see ‘go help modules‘ - 苦哈哈的程序猿

这里go env -w GO111MODULE=auto有两种情况会开始modules方式管理依赖

(1)当前目录在GOPATH/src之外且该目录包含go.mod文件,开启模块支持。

(2)当前文件在包含go.mod文件的目录下面

这里解决方式有2种

方式1  执行 go env -w GO111MODULE=auto后再编译

 依赖包缺失,通过go get拉取

go get golang.org/x/sys/windows

go get github.com/gonutz/ide/w32

 然后可以直接编译

GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build -ldflags '-w -s -H=windowsgui' main.go

方式2 创建go.mod

go mod init 项目名

go mod tidy

相关原理可以参考:

go mod tidy的作用 - 简书

2  报错syscall.go:84:16: undefined: unsafe.Slice

go/src/golang.org/x/sys/windows/syscall.go:84:16: undefined: unsafe.Slice

go/src/golang.org/x/sys/windows/syscall_windows.go:131:29: undefined: unsafe.Slice

 搜了一下好像是go版本的问题,推荐使用go1.18或者1.17

https://groups.google.com/g/golang-checkins/c/sFiznuiZaiQ

我当前本地版本

go version go1.16.6 darwin/amd64 

卸载原版本或者再下载别的版本,如1.18

brew install go@1.18

brew link go@1.18 --force

再次编译后成功

3 build constraints exclude all Go files in xxx

这种属于交叉编译报错

我们打开对应的需要引入的包的源码,发现依赖包通过// +build控制了编译的所需要的当前环境类型

如果这里交叉编译,需要申明当前环境类型

如:

GOOS=windows GOARCH=amd64 CGO_ENABLED=0 go build main.go 

或者参考:

这样分行设置换将变量,然后执行go build

export CGO_ENABLED=0

export GOOS=windows

export GOARCH=amd64

golang交叉编译详细_Golang_脚本之家

参考:

透过一个编译报错,总结两个Go程序编译的重要知识-51CTO.COM

go build 参数_Go语言 通过go bulid -tags 实现编译控制_weixin_39964899的博客-CSDN博客

4 GoLand IDE配置 GOROOT 时出现 "The selected directory is not a valid home for Go Sdk" 

 修改本地安装golang的一个文件/go1.17.6/src/runtime/internal/sys/zversion.go

  增加一行文件

const TheVersion = `go1.18.7`

再次设置即可识别

参考:

[Golang] 解决 Goland配置GOROOT The selected directory is not a valid home for Go SDK_wozaizhe.55的博客-CSDN博客_goland 配置goroot

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

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

相关文章

ArrayList集合类和对象数组案例区别讲解

目录 对象数组案例讲解 集合 ArrayList类的构造方法和成员方法 对象数组案例讲解 创建一个学生数组,存储三个学生对象并遍历 package com.demo01; /*** * author 无限嚣张菜菜* 分析:* A:定义学生类* B:创建学生数组* C&am…

关于PKI 你了解多少

公钥基础设施PKI(Public Key Infrastructure),是利用公开密钥机制建立起来的基础设施,在信息互联互通时代,可以说它是创建、颁发、管理、注销公钥证书所涉及的所有软件、硬件集合体。对拥有庞大用户的系统来说&#xf…

Activity的5种启动模式详解(新增singleInstancePerTask类型)

前言 看到这个标题的时候,也许你会认为我写错了,Activity不是只有四种启动模式吗?分别为startard,singleTop,singleTask,singleInstance这四种。 一般来说是四种,但是android12的时候新加入了singleInstancePerTask类型&#xf…

【金三银四系列】之MySql面试突击(2023版)

Mysql金三银四面试突击班 1.Bin log是什么,有什么用?(数据库被人干掉了怎么办?) 1.bin Log: 数据恢复 主从复制 MySQL Server 层也有一个日志文件,叫做 binlog,它可以被所有的存储引擎使用。…

PRD-产品需求说明文档

产品需求说明文档(PRD)可以将产品设计思路清晰的展现给团队人员,便于他们快速理解产品。产品需求说明文档如何写呢?本文希望能够得到高人指点,本人是小白,同时不建议其他小白参考此文以免造成干扰。 包括文…

Spark 学习案例

案例1:搜索引擎日志分析 数据来源:使用搜狗实验室提供的【用户查询日志】数据。使用Saprk框架,将数据封装到RDD中进行数据处理分析。 数据网址:数据地址 这个地址可能过期了,需要的伙伴可以私聊博主。 数据格式&…

css清除浮动的方法

浮动的盒子会脱离标准流,不占有自己原先的位置,导致下面的其他标签往上移动 此时,可以给浮动的盒子添加一个父盒子(块级),并设置高度,就可以避免下面的其他标签上浮 但是有时候父盒子不能设置高…

pycharm:新建虚拟环境和安装依赖

前言 小编深有体会,在刚开始用pycharm跑python的项目的时候,一时间不知道如何下手,特别是作为一个新手小白,这里总结了一份新手避坑指南,主要是新建虚拟环境(生成一个项目对应的解释器)以及安装…

温度预测 python | 使用 Python 可以使用机器学习模型进行温度预测

使用 Python 可以使用机器学习模型进行温度预测。常用的模型有回归分析、随机森林等。使用前需要准备足够的历史数据并进行特征工程,构建模型并进行训练,最后使用预测结果。 文章目录温度预测 回归分析导入必要的库:读取温度数据:…

Java中的插入排序和希尔排序

插入排序&&希尔排序插入排序希尔排序上一篇博客我给大家伙说了一下子堆排序,之所以我把插入排序和希尔排序放在一起呢,是因为希尔排序实际上用到了插入排序的思想,希望下面的内容能够帮助到大家.对于插入排序呢,我们可以参考抓牌顺牌,就在一般情况下,我们也不考虑什么组…

对象在Eden区分配

一、对象在Eden区分配大多数情况下,对象在新生代中 Eden 区分配。当 Eden 区没有足够空间进行分配时,虚拟机将发起一次Minor GC。在测试之前我们先来看看 Minor GC和Full GC 有什么不同呢?Minor GC/Young GC:指发生新生代的的垃圾…

oracle11g SAP测试机归档日志暴增排查(二)

接上面一的内容,通过logminer可以知道是因为oracle11g设置awr快照引起的插入数据,所以要看这个插入是否正常。 之前也发现SYSAUX表空间也没有多少了,应该这个原因引起产生大量的日志 6、查找SYSAUX表空间满的原因 对于SYSAUX表空间而言&…

【博学谷学习记录】大数据课程-学习第五周总结

Hadoop概述 Hadoop介绍 Hadoop是Apache旗下的一个用java语言实现开源软件框架,是一个开发和运行处理大规模数据的软件平台。允许使用简单的编程模型在大量计算机集群上对大型数据集进行分布式处理。 狭义上说,Hadoop指Apache这款开源框架,它…

Gateway, Zuul, Oauth2.0, 前后端分离, 定制页面,登录回调接口的处理

由于公司与Alexa平台接入了语音控制的功能,需要将公司的账号与Alexa的账号进行绑定,所以需要账号授权的操作,也就是使用授权码模式。开发过程中遇到了很多坑,网上关于前后端分离的定制页面的介绍又很少,前前后后花了一…

泰拉瑞亚灾厄NPC不复活x哥布林军队入侵中断

文章首发及后续更新:https://mwhls.top/4415.html,无图/无目录/格式错误/更多相关请至首发页查看。 新的更新内容请到mwhls.top查看。 欢迎提出任何疑问及批评,非常感谢! 目录 NPC 不复活 原因 解决办法 哥布林军队入侵中断 说…

2019-ICML-Towards Graph Pooling by Edge Contraction

2019-ICML-Towards Graph Pooling by Edge Contraction Paper: https://graphreason.github.io/papers/17.pdf Code: https://github.com/Jiajia43/pytorch_geometric 通过边收缩实现图池化 池化层可以使GNN对抽象的节点组而不是单个节点进行推理,从而增加其泛化潜…

MongoDB下载安装

MongoDB 是一个基于分布式文件存储的数据库。由 C 语言编写,旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 (摘…

音频编辑服务UI SDK接入指导及常见问题

华为 HMS Core 音频编辑服务(Audio Editor Kit)是华为帮助全球开发者快速构建各类应用音频能力的服务,汇聚了华为在音乐、语音等相关音频领域的先进技术。音频编辑服务为开发者们提供音频基础编辑、AI配音、音源分离、空间渲染、变声、多种音…

IT自动化运维体系的搭建

大家好,我是技福的小咖老师。 对于构建IT运维管理系统而言,如何使用系统的方法来改善运维服务,以及对运维过程进行全面审查尤为重要。今天我们就来讲讲IT自动化运维体系的搭建。 设立IT运维优先原则 优先处理原则是指定义出IT运维的每个关键…

JAVA工具-JDK、JRE、JVM、JIT

目录 概要 JDK和JRE区别 JAVA工具间的联系 JAVA源代码如何被操作系统执行 补充:JIT 概要 JDK:Java Developers Kit-Java开发工具 JRE:Java Runtime Environment-Java运行环境 JVM:Java Virtual Machine-Java虚拟机 JIT:J…