【GO】import package 的写法

【背景】尝试定义一个公共变量,供其它文件读取

【测试工程】

kafka 目录下包含 kafka_consumer.go 、kafka_producer.go 、kconst/const.go。 为了方便测试文件管理,因此各种文件都定义在了kafka目录下

kconst/const.go 是共用变量定义的文件,文件内容如下:

  1 package kconst
  2 
  3 
  4 var (
  5     Name_hostconfA string = "localhost:9092"
  6     Name_topicTest string = "testGo"
  7     Name_partitionTest string = "testGo"
  8 )
 

【注解】

import的是path路径,而非package名称,即一个目录A下,可以有多个文件,目录A下的多个文件可以定义package A

【编译】

go install 编译错误

按照网上搜索的方法,先 go install kconst,再 go build kafka_producer.go, 在 go install 的时候始终报错

扫描二维码关注公众号,回复: 2222498 查看本文章

kafka_producer.go:7:2: cannot find package "kconst" in any of:
    /usr/local/go/src/kafka/kconst (from $GOROOT)
    /home/work/playback/src/kconst (from $GOPATH)
 

go build 编译错误

尝试不用 go install kconst,而是直接 go build kafka_producer.go,编译仍旧报错

修改import 的路径为绝对路径、添加新的环境变量 ... 都没有解决问题

其中也尝试了修改 GO的环境变量,最后不折腾了。

将被依赖的package移到$GOPATH路径下,直接 go build目标文件【编译成功】

将如上的 /home/work/test_code/go/kafka/kconst目录直接迁移到 /home/work/playback/src/kafka_test/kconst目录【/home/work/playback/src是$GOPATH指定的路径】,直接  go build kafka_producer.go 编译成功

测试文件路径

$GOPATH路径,并将被依赖文件放到这里

先解决了燃眉之急,想研究更多,可以参看 https://blog.csdn.net/CMbug/article/details/49339341

猜你喜欢

转载自blog.csdn.net/yk200808/article/details/81086383