我试图安装我的一个go文件。但是我遇到了这个错误
C:\mygoproject>go install kafkapublisher.go
\#command-line-arguments
.\kafkapublisher.go:8:65: undefined: kafka.Message
.\kafkapublisher.go:10:19: undefined: kafka.NewProducer
.\kafkapublisher.go:10:38: undefined: kafka.ConfigMap
.\kafkapublisher.go:17:31: undefined: kafka.Event
.\kafkapublisher.go:19:26: undefined: kafka.Message
在我的kafkapublisher.go文件中,我已经导入了Kafka的依赖关系:
import (
"github.com/confluentinc/confluent-kafka-go/kafka"
"log"
)
甚至在我的go.mod
文件上
module mymodule
go 1.12
require (
github.com/aws/aws-lambda-go v1.15.0
github.com/confluentinc/confluent-kafka-go v1.3.0
)
我遵循了以下文档:https://docs.confluent.io/current/clients/go.html
screenshot
6条答案
按热度按时间txu3uszq1#
我也面临着同样的问题。
Kafka Go客户端是基于C库的,所以设置
CGO_ENABLED=1
标志将使Go可以使用Kafka客户端的C库。希望这能节省一些人的时间。
fae0ux8s2#
我已经找到了这个。我安装了Confluent的Kafka Go客户端。说明如下:https://docs.confluent.io/current/clients/go.html#
虽然Windows不支持该库,但我不得不使用虚拟机(Oracle VM Box)来构建和运行我的代码。
在安装Confluent的GO Kafka Client之前,我还需要编译并安装librdkafka:https://github.com/confluentinc/confluent-kafka-go/blame/master/README.md#L133
mcdcgff03#
在构建映像时,使用
-tags musl
(对于alpine linux,@请参见github.com/confluentinc/confluent-kafka-go)和activeCGO_ENABLED
激活C语言中的lib,因为Kafka Go客户端基于C库librdkafka在停靠文件中:
注:-标签musl:如果要使用内置librdkafka -标记动态:如果你想用你自己的librdkafka。
bf1o4zei4#
显然依赖项没有被导入,
如果您运行go build命令,它将下载必要的依赖项并编译代码等
尝试运行
go build ./...
yacmzcpb5#
尚未下载依赖项。
您可以使用go get下载软件包。或者使用
1.转到mod下载
1.保持适度整洁
42fyovps6#
如果您有任何问题,请联系我们go-build-ldflags.sh。
提示:在mac & linux操作系统下测试,至于原因,我认为这取决于一些C语言库