在M1芯片上对Kafka进行动态链接的Golang测试



我正在尝试为我在新的M1 Mac上使用Golang/Kafka的poc编写一些单元测试。我正在使用confluent中的官方Golang Kafka库:

"github.com/confluentinc/confluent-kafka-go/kafka"

显然,这个包依赖于一个librdkafka,它不是为M1构建的(还没有?)对于构建,这里有一个工作,它像这样:

% brew install librdkafka openssl zstd
% PKG_CONFIG_PATH="/opt/homebrew/opt/openssl@3/lib/pkgconfig"
% go build -tags dynamic *yadda yadda yadda*

这对于构建/运行是很好的。不幸的是,它似乎对测试不起作用。在描述解决方案的链接中,使用go test -tags dynamic ./...似乎可以工作,但在我的情况下,测试运行似乎无法读取导出的PKG_CONFIG_PATH:

% go test -tags dynamic ./... -v
# pkg-config --cflags  -- rdkafka
Package libcrypto was not found in the pkg-config search path.
Perhaps you should add the directory containing `libcrypto.pc'
to the PKG_CONFIG_PATH environment variable
Package 'libcrypto', required by 'rdkafka', not found
pkg-config: exit status 1
FAIL    smartAC/shared [build failed]

即使设置了env var,至少在我的shell中:

% echo $PKG_CONFIG_PATH
/opt/homebrew/opt/openssl@3/lib/pkgconfig

是否有一些技巧可以使用测试工具来查看env变量?

好吧,没关系。我整理了这个…在我的~/。我没有导出PKG_CONFIG_PATH,所以我修改了这个:

PKG_CONFIG_PATH="/opt/homebrew/opt/openssl@3/lib/pkgconfig"

:

export PKG_CONFIG_PATH="/opt/homebrew/opt/openssl@3/lib/pkgconfig"

似乎有效。把这个问题留在网上,以防它可能对像我这样的新手有所帮助:-)。

最新更新