我怎样才能得到librdkafka C ++生产者示例在调试器下的Windows上运行?

问题描述

我正在Windows上的Visual Studio 2019中使用librdkafka.redist NuGet软件包v1.50。

我实际上将librdkafka producer.cpp示例代码复制/粘贴到我的空C ++项目中,只更改了一行,如下所示:

#include <librdkafka/rdkafkacpp.h>

我还修改了build / native / librdkafka.redist.targets,将“ librdkafka.lib”的出现替换为“ librdkafkacpp.lib”,因为我使用的是C ++。

在所有情况下,命令行参数均为“ 127.0.0.1 test”。我在本地运行Kafka,主题是“测试”。

通过此设置,项目作为发布可执行文件的构建和运行就很好。我可以键入要生成的字符串,然后将它们生成以进行主题测试。

如果我切换到调试配置(32或64位,没关系),程序就可以很好地构建,但是在运行它时,它会在尝试调用时崩溃:

conf->set("bootstrap.servers",brokers,errstr)

当崩溃发生时,经纪人确实是“ 127.0.0.1”。

这是在致电后立即出现的

RdKafka::Conf* conf = RdKafka::Conf::create(RdKafka::Conf::CONF_GLOBAL);

我不希望将插入 librdkafkacpp代码,但是在运行调试可执行文件时使其真正正常运行会很好。

我还证明,即使不在调试器下运行调试可执行文件,该调试可执行文件也会失败。它在64位exe中因该错误而崩溃。

Unhandled exception at 0x00007FF917F8C3F9 (msvcr120.dll) in KafkaFun.exe: 0xC0000005: Access violation reading location 0x0000002D4A150000.

这是32位exe中的错误

Unhandled exception at 0x0100F41C (msvcr120.dll) in KafkaFun.exe: 0xC0000005: Access violation reading location 0xCD2BC8B0.

当我构建调试可执行文件时,显然存在着严重的错误。你知道是什么问题吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)