如何解决以下链接器错误w.r.t 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时,这会出现以下链接器错误



额外信息:

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

/usr/include/jsoncpp/json中的value.h(由ubuntu apt安装)具有
Value &operator=( const Value &other );

并且最新的jsoncpp value.h具有
Value &operator=(Value other);

最佳答案

Debian附带jsoncpp-0.6.0-rc2。我敢打赌,Ubuntu也是如此。

只需切换到 jsoncpp-0.8.z ,即binary-compatible with 0.6.0-rc2 ,其中包括1.y.z的大多数增强功能和错误修复程序。

实际上,Debian目前正在切换到0.8.z。在Ubuntu更新其发行版本之前,您可能必须避免使用新功能(主要是Builders),而要使用已弃用的Readers/Writers,这可能就是您已经做的。因此,使一切正常工作应该很容易。

关于c++ - jsoncpp运算符中的 undefined reference =,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28445744/

10-11 01:04