libjson-c.so.3 与 Ubuntu 中的 libjson-c.so.2

libjson-c.so.3 vs libjson-c.so.2 in Ubuntu

我正在尝试 运行 在 Ubuntu 18.04 上开发的 C++ 程序。它使用 JSON-C 共享库。它在我的 Ubuntu 18.04 系统上编译和 运行s 没有任何问题。然而,它在 Ubuntu 14.04 系统上编译但在 运行ning 上崩溃, 报告以下消息 -

*** Error in `./main.out': corrupted size vs. prev_size: 0x00007fdd54f49e30 ***Aborted (core dumped)

经过一些挖掘,我发现 JSON-C 库有问题。我已经使用 ldd 命令检查了链接的 JSON-C 库。 它在 Ubuntu 18.04 -

中给了我以下输出
libjson-c.so.3 => /lib/x86_64-linux-gnu/libjson-c.so.3 (0x00007ff16a88c000)

然后在 Ubuntu 14.04 -

libjson-c.so.2 => /lib/x86_64-linux-gnu/libjson-c.so.2 (0x00007f0848838000)

我猜 JSON-C 版本有问题。我在 google 上找不到任何有用的信息。知道这是什么类型的问题吗?

Ubuntu 18.04 LTS 包含更新版本的库 "libjson-c3"。以前的版本,包括 Ubuntu 16.04 LTS 和 14.04 LTS 都有一个旧版本 "libjson-c2"。

这些版本差异很大,不兼容。

如果您必须 运行 14.04 上的代码,您需要仔细检查 libjson 调用以确定这些兼容性在哪里。

或者,您可以尝试 运行 在较新的 18.04 上运行您的应用程序,而不用担心支持 14.04