【背景】尝试定义一个公共变量,供其它文件读取
【测试工程】
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 的时候始终报错
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