回答

收藏

构建 Go 项目时“package XXX is not in GOROOT”

技术问答 技术问答 276 人阅读 | 0 人回复 | 2023-09-12

当我从这个项目中休息时,出现了一个奇怪的问题。Goland 之后,我在尝试运行我的项目时遇到了很多错误。8 y6 i! {: Z! m: A, D
在构建我的包时,具体的错误是: start.go: package project/game is not in GOROOT (C:\Go\src\project\game)
; E" l. s7 |& p) v" _; f我下面有一个文件夹结构 C:\Users\username2 n8 ]; Q% |0 U8 k. N/ L% `+ |" K
    go|-src   |-project        |-game            |-entity                 |-whatever.go            |-game_stuff.go        |-server$ r" g( |# D+ K4 c
我的环境变量是这样的:6 _0 d6 p4 ~+ m& m  O
    GOROOT=C:\Go GOPATH=C:\Users\ketchup\go ' R# y5 x6 L4 K" P+ n
我为每个模块(项目/游戏/实体、项目/游戏、项目/服务器)务器)git mod init.
4 u4 j1 D) S8 r8 a9 k, c& R在构建时,Goland 将尝试操作:
0 I$ S$ ^& u- r4 G* i* \4 j
    C:\Go\bin\go.exe build -o C:\Users\ketchup\AppData\Local\Temp\___go_build_project_server.exe project/server
    0 U% _2 e: ~% D. l9 T* V- T
并返回错误。
3 A5 x6 ]; W1 q0 o) j* y  f7 U谁能帮我解决这个问题?有点迷失,因为我上次打开 Goland 运行良好。甚至不确定要看哪个方向 - 我对 Go 还是很奇怪,不确定看什么文档:\谢谢大家!; @' i# V! u3 U* ]5 a
                                                                # S; n7 K/ K/ N7 x' h5 M
    解决方案:                                                               
9 Q3 s6 v" r( g, h* O( `                                                                一个非常愚蠢的结论(主要是我的部分),但我的问题来自go mod init每个文件夹都完成了。删除我制作的每个文件夹go.mod删除后,我可以毫无问题地构建(通过终端)go.dep``go mod init& v4 u: W) G; D  _. a
另外,我在 GoLand 中的包没有被检测到,因为我在设置中使用了 Go 模块。GoLand 可以索引外包和我自己的包。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则