回答

收藏

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

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

我有以下文件结构:
- W$ d( b6 s9 w7 X) P4 s! k1 `$ |3 D
    .├── bin│   └── hello├── pkg└── src    └── jacob.uk.com        ├── greeting        │   └── greeting.go        └── helloworld.go5 directories,3 files
    5 z- M3 p8 y8 }2 w# U. A/ j( H/ l* g
使用以下 GOPATH$ j9 e* {- g2 |+ O  |
    /Users/clarkj84/Desktop/LearningGo
    ) n. _: Y: ~+ v3 }  g( B
在文件夹/usr/local/go/bin/go install jacob.uk.com内执行后src,我收到错误local import "./greeting" in non-local package
* V8 q- K  ?% b& F" j# ohelloworld.go:3 O$ I5 j) t- m6 m  m$ ^
    3 J2 K& c7 e* L) z% x% t/ P
  • package main;import "./greeting"func main()code]               7 g6 Y% o# n  I5 I
  •     解决方案:                                                               3 ~0 ?( Y  ~3 L5 e6 t5 ?  a
  •                                                                 将非本地包指定为go install. 如果想在当地引进工作,首先要把工作目录改成src/jacob.uk.com然后执行go install(不指定包)。
    5 J8 t2 k' u4 O" J
  • 当然,具有helloworld.go你会得到一个编译错误:imported and not used。但是一旦你使用了导入greeting它应该能够编译包中的东西。
    * [. |& x  u( d# P* |4 d
  • 但是你根本不应该使用本地导入。而是写:[code]import "jacob.uk.com/greeting"
    4 m: s% T6 z, e- k+ N
您将能够从任何地方编译/操作/安装它。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则