jsoncpp operator =中的未定义引用

时间:2015-02-11 02:48:45

标签: c++ c++11 ubuntu-14.04 jsoncpp

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

  

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

额外信息:

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

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

Value &operator=( const Value &other );

和最新的jsoncpp value.h有

Value &operator=(Value other);

1 个答案:

答案 0 :(得分:1)

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 ),而是使用已弃用的读者/作者,这可能就是您已经做过的事情。所以你应该很容易让一切运转起来。