4

我想在我的 MacOS Mojave(10.14.5)上使用 kafkacat 命令行实用程序(https://docs.confluent.io/current/app-development/kafkacat-usage.html)。我执行了以下步骤

brew install kafkacat

kafkacat -C -b brokerID -t kafkaTopic -e -K '+'

我收到如下错误

dyld:惰性符号绑定失败:找不到符号:_timespec_get
引用自:/usr/local/opt/librdkafka/lib/librdkafka.1.dylib
预期在:/usr/lib/libSystem.B.dylib

dyld:找不到符号:_timespec_get 引用自:/usr/local/opt/librdkafka/lib/librdkafka.1.dylib 预期在:/usr/lib/libSystem.B.dylib

中止陷阱:6

我试过卸载并重新安装kafkacat。

4

4 回答 4

2

我遇到了同样的问题。看起来它来自 librdkafka:https ://github.com/edenhill/librdkafka/pull/2569和 Xcode 的最新版本(11)。您可以:

  • 卸载 librdkafka / kafkacat brew 版本 ( brew uninstall ...)。使用“固定”分支重建 librdkafka,然后重建 kafkacat(我测试过的方法)或
  • 将 Xcode 降级到 10.x
于 2019-10-15T22:24:58.643 回答
2

在我阅读https://github.com/edenhill/librdkafka/pull/2569中的问题后,以下内容对我有用

我卸载了kafkacat,然后卸载了librdkafka

brew卸载kafkacat brew卸载librdkafka

然后我安装了最新版本的 kibrdkafka,它有修复但在 brew 中不可用,如下所示

酿造安装 librdkafka --HEAD

然后再次安装kafkacat

酿造安装kafkacat

现在错误消失了,消费者连接上了。注意我的 XCode 版本是 11.2.1

于 2019-11-13T13:43:29.033 回答
2

librdkafka我在 macOS Mojave 版本中遇到了同样的错误。10.14.6,我已经安装了Xcode 11.x

dyld: lazy symbol binding failed: Symbol not found: _timespec_get
  Referenced from: /usr/local/opt/librdkafka/lib/librdkafka.1.dylib
  Expected in: /usr/lib/libSystem.B.dylib

dyld: Symbol not found: _timespec_get
  Referenced from: /usr/local/opt/librdkafka/lib/librdkafka.1.dylib
  Expected in: /usr/lidyld: lazy symbol binding failedb/libSystem.B: Symbol not found: _timespec_ge.dylib

我在Blizzard/node-rdkafka中发现了一个未解决的问题,描述了相同的错误。按照建议,我将 Xcode 从降级11.x10.3,然后重建librdkafka

brew install --build-from-source librdkafka

有效!

顺便说一句,看起来修复程序刚刚librdkafka合并到主程序中。

于 2019-10-16T13:56:49.193 回答
1
brew uninstall librdkafka
brew uninstall kafkacat

除了将 Xcode 从 11.x 降级到 10.3 之外,还需要为 Xcode 10.3 安装命令行工具。https://developer.apple.com/download/more/

降级 xcode => https://medium.com/@tseboho/how-to-downgrade-xcode-4359df5158d5

brew install --build-from-source librdkafka
brew install kafkacat
于 2019-11-08T09:30:59.707 回答