如何解决以下链接器错误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);
答案 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 ),而是使用已弃用的读者/作者,这可能就是您已经做过的事情。所以你应该很容易让一切运转起来。