回答

收藏

Go:非本地包中的本地导入

技术问答 技术问答 237 人阅读 | 0 人回复 | 2023-09-11

我有以下文件结构:+ A8 m( {! e" V" Z- u4 y$ k
    .├── bin│   └── hello├── pkg└── src    └── jacob.uk.com        ├── greeting        │   └── greeting.go        └── helloworld.go5 directories,3 files2 c7 ^. g1 X5 a, p
使用以下 GOPATH, _! |$ [- s$ X# H  ?
    /Users/clarkj84/Desktop/LearningGo# D& V3 n0 d) R+ g8 \
在文件夹/usr/local/go/bin/go install jacob.uk.com内执行后src,我收到错误local import "./greeting" in non-local package& F5 o5 H" h6 X5 J9 [5 D* v' D
helloworld.go:! ^& ]; x" k2 r5 z! C
    ; u% @2 [( {' \4 s" V
  • package main;import "./greeting"func main()code]               ! U* K/ m& }. l" q" _# C( u
  •     解决方案:                                                               : v$ ]5 G* ]4 ?# h+ C
  •                                                                 将非本地包指定为go install. 如果想在当地引进工作,首先要把工作目录改成src/jacob.uk.com然后执行go install(不指定包)。7 ]2 w8 f% O- h, O: w0 ~6 l
  • 当然,具有helloworld.go你会得到一个编译错误:imported and not used。但是一旦你使用了导入greeting它应该能够编译包中的东西。* ~1 Z2 y. \' y% g" y! m' X
  • 但是你根本不应该使用本地导入。而是写:[code]import "jacob.uk.com/greeting"
    * K4 h# w- Z- e& \/ O; Z
您将能够从任何地方编译/操作/安装它。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则