我有一个基于GOPATH的项目,我目前在Fedora上构建如下:
sudo dnf install golang-etcd-bbolt-devel golang-x-sys-devel golang-x-text-devel GOPATH=$HOME/go:/usr/share/gocode go build
我的项目(gonzofilter)实现了一个命令行实用程序,因此源文件位于主包中(即它们具有声明)。package main
在 Fedora 34 及更高版本中,Go 似乎删除了对构建 GOPATH 样式项目的支持,人们真的必须使用 Go 模块:
go build go: cannot find main module; see 'go help modules'
那篇Go博客文章涵盖了我的情况(->“没有依赖管理器”),但它没有明确提到如何处理主包项目或分发提供的依赖关系。
那么,如何迁移这样的项目呢?
我如何告诉Go/在?go mod tidy
/usr/share/gocode
编辑:确切地说:Fedora 34 附带了 Go 1.16,它“刚刚”将默认值从 更改为 .因此,仍然可以通过设置来恢复旧行为。GO111MODULE
auto
on
GO111MODULE=auto
但是,Golang开发人员已经宣布他们希望放弃对Gopath样式项目的Gopath 1.17的支持:
我们计划在 Go 1.17 中放弃对 GOPATH 模式的支持。换句话说,Go 1.17 将忽略 GO111MODULE。如果您的项目未在模块感知模式下生成,那么现在是时候迁移了。
天涯尽头无女友
慕姐4208626
慕沐林林
qq_笑_17
相关分类