gpt4 book ai didi

c - 链接错误: cannot find -lrdkafka pre-compiled dynamic library in PlatformIO

转载 作者:行者123 更新时间:2023-11-30 14:47:18 25 4
gpt4 key购买 nike

我正在尝试使用 PlatformIO 让 Kafka 在 Esp32 上工作。

我尝试使用 platformio.ini 文件中表达的构建标志将 C 库链接到 PlatformIO 中构建的项目。我正在使用 librdkafka 库。 librdkafka.so 文件的位置位于/usr/local/lib 中,但每当我使用 plaformio 中的链接库构建项目时,都会出现以下错误:

platformio/packages/toolchain-xtensa32/bin/../lib/gcc/xtensa-esp32-elf/5.2.0
/../../../../xtensa-esp32-elf/bin/ld: cannot find -lrdkafka

platformio.ini 文件:

[env:featheresp32]
platform = espressif32
board = featheresp32
framework = espidf
build_flags =
-L/usr/local/lib
-I/usr/local/include/librdkafka
-lrdkafka

在 PlatformIO 之外,我使用以下命令成功将 librdkafka 链接到 main.c 项目文件: gcc main.c -L/usr/local/lib -l:librdkafka.so -lz -lpthread -lrt -I/usr/local/include/librdkafka

最佳答案

您正在尝试将为您的系统构建的 Kafka 库与 ESP32 程序链接起来。

这绝对行不通。它们是两种不同的架构。您运行 platformio 的系统很可能是 Intel 处理器,因此/usr/local/lib 中的任何内容都是为此构建的,而不是为 ESP32 构建的。

您可能在 Linux 上运行,因此 Kafka 库是为 Linux 构建的。 ESP32 不运行 Linux。因此,Kafka 库不可能在 ESP32 上运行,即使它是为其编译的,但事实并非如此。

Kafka 并非设计用于在 ESP32 上运行。如果您希望 ESP32 与 Kafka 系统交互,您需要找到一个与 Kafka 兼容且设计为在 ESP32 上运行的客户端。 librdkafka 无论如何都不兼容 ESP32。

关于c - 链接错误: cannot find -lrdkafka pre-compiled dynamic library in PlatformIO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51470167/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com