我想让Kafka用platformio做一个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
1条答案
按热度按时间ozxc1zmp1#
您正在尝试将为您的系统构建的Kafka库与esp32程序链接。
这绝对不行。它们是两种不同的架构。运行platformio的系统很可能是一个英特尔处理器,/usr/local/lib中的任何东西都是为此而构建的,而不是为esp32而构建的。
您可能正在linux上运行,因此kafka库是为linux构建的。esp32不运行linux。所以Kafka库不可能在esp32上运行,即使它是为esp32编译的,但事实并非如此。
Kafka的设计不是要在esp32上运行。如果你想让你的esp32与kafka系统交互,你需要找到一个与kafka兼容的客户机,该客户机是为在esp32上运行而设计的。
librdkafka
与esp32完全不兼容。