5

如何解决以下链接器错误 wrt jsoncpp operator=.

我创建一个Json::Value这样的对象

Json::Value pt;
pt["type"] = 5;
pt["uuid"] = "f8c74622-d45e-4cfa-fe00-5e7042431c72";
pt["start frame"] = 10;
pt["duration"] = 20;
pt["payload"] = "aedddefffsadf";

当我尝试链接 Ubuntu 14.04 附带的默认 libjsoncpp-dev 时,这会出现以下链接器错误

未定义对 `Json::Value::operator=(Json::Value)' 的引用

额外信息:

而且在编译并链接到来自 GitHub 的最新 jsoncpp 时,我没有收到此链接器错误。

/usr/include/jsoncpp/json 中的 value.h(由 ubuntu apt 安装)有

Value &operator=( const Value &other );

最新的 jsoncpp value.h 有

Value &operator=(Value other);
4

1 回答 1

2

Debian 附带jsoncpp-0.6.0-rc2. 我敢打赌Ubuntu也会。

只需切换到jsoncpp-0.8.z,它与 .二进制兼容并包含0.6.0-rc2来自1.y.z.

实际上Debian正在切换到0.8.z目前。在 Ubuntu 更新其发布的版本之前,您可能不得不避免使用新功能(主要是Builders),而是使用已弃用的 Readers/Writers,这可能是您已经在做的事情。所以你应该很容易让一切正常工作。

于 2015-02-17T20:03:50.207 回答