go 的项目文件夹下一直在生成 pkg 文件夹怎么处理

69 天前
 dwSun

如图:

我现在项目里面,老是会生成这个 pkg 文件夹,看一些资料,说是 moulde 设置的问题.

但是改了几遍不同的设置,这个文件夹还是在生成,而且这个 pkg 也不是在代码里面,而是在项目的根目录。如图,我的代码是在 src 下面的 mod 文件也在 src 下面,但是 pkg 却在项目根目录生成了

用 cursor 或者 vscode 都会生成这个文件夹,本来用 vscode 问题不大,但是现在用 cursor ,每次都要把这个 pkg 文件夹解析一遍,实在太慢了。

GOENV 的设置如下:可以看到该有的都有了,GOPATH 也是正常的。

GO111MODULE='on'
GOARCH='amd64'
GOBIN=''
GOCACHE='/home/david/.cache/go-build'
GOENV='/home/david/.config/go/env'
GOEXE=''
GOEXPERIMENT=''
GOFLAGS=''
GOHOSTARCH='amd64'
GOHOSTOS='linux'
GOINSECURE=''
GOMODCACHE='/home/david/Code/go/pkg/mod'
GONOPROXY=''
GONOSUMDB=''
GOOS='linux'
GOPATH='/home/david/Code/go'
GOPRIVATE=''
GOPROXY='https://goproxy.cn,direct'
GOROOT='/home/david/Code/go/vers/go'
GOSUMDB='sum.golang.org'
GOTMPDIR=''
GOTOOLCHAIN='auto'
GOTOOLDIR='/home/david/Code/go/vers/go/pkg/tool/linux_amd64'
GOVCS=''
GOVERSION='go1.23.3'
GODEBUG=''
GOTELEMETRY='local'
GOTELEMETRYDIR='/home/david/.config/go/telemetry'
GCCGO='gccgo'
GOAMD64='v1'
AR='ar'
CC='gcc'
CXX='g++'
CGO_ENABLED='1'
GOMOD='/dev/null'
GOWORK=''
CGO_CFLAGS='-O2 -g'
CGO_CPPFLAGS=''
CGO_CXXFLAGS='-O2 -g'
CGO_FFLAGS='-O2 -g'
CGO_LDFLAGS='-O2 -g'
PKG_CONFIG='pkg-config'
GOGCCFLAGS='-fPIC -m64 -pthread -Wl,--no-gc-sections -fmessage-length=0 -ffile-prefix-map=/tmp/go-build1345018295=/tmp/go-build -gno-record-gcc-switches'
1603 次点击
所在节点    程序员
10 条回复
body007
69 天前
你的项目放到 GOPATH='/home/david/Code/go' ,GOROOT='/home/david/Code/go/vers/go' 这两个目录的子目录没?用 go mod 时一定要把项目放到 GOPATH ,GOROOT 以外的目录。
dwSun
69 天前
@body007 #1 在另一个单独的目录,没在 GOPATH ,GOROOT 下面。
javalaw2010
69 天前
没碰见过,可以排查下,有可能项目本身有什么玩意儿影响了,或者编辑器覆盖了环境变量。可以挨个排查下,把 pkg 删了,再别的路径上新起个项目看看 pkg 文件在哪生成的,然后试下分别在 vscode 里面的 terminal 和系统的 terminal 里面 build 一下,先判断是项目本身有问题还是环境有问题。
Nazz
69 天前
换个教程看看, 你这是上古时代的宝贝
Trim21
69 天前
你的代码在哪个目录?
kkk9
68 天前
这个情况看起来是 GO111MODULE=on 没有生效,建议看下是不是 makefile 或者其他地方覆盖掉 off 了?
dwSun
68 天前
目前用了两个办法来规避这个问题:
- 1 放一个 .cursorignore ,可以放 cursor 忽略特定的文件和目录,语法和作用都跟.gitignore 一样的。
- 2 在根目录放一个空的 go.mod 文件,看上去,因为我的项目根目录,不是代码根目录,被编辑器误认为不是 mod 的项目,所以做了一些奇怪的操作。
realpg
68 天前
盲猜你是看别人教程学的 go
然后这个教程比较古董
项目结构跟现在的常规项目不一样
xiaocaiji111
68 天前
是 go 以前没有 module 时候得版本吧,那个项目要放到 src 下,然后记得还有 pkg 和 bin 目录来着,当时开发这三个目录必备,后面再也没用过这种模式
uds9u32br
68 天前
感觉像 IDE 在搞怪,试试纯命令行构建或者 goland 。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1091105

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX