jsoncpp operator= 中的未定义引用
Undefined reference in jsoncpp operator=
如何解决以下 linker 错误 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";
当我尝试 link 针对 Ubuntu 14.04
附带的默认 libjsoncpp-dev 时,出现以下 linker 错误
undefined reference to `Json::Value::operator=(Json::Value)'
额外信息:
而且我在编译时没有得到这个 linker 错误,并且 linked 针对来自 GitHub 的最新 jsoncpp。
value.h(由 ubuntu apt 安装)在 /usr/include/jsoncpp/json 中有
Value &operator=( const Value &other );
最新的 jsoncpp value.h 有
Value &operator=(Value other);
Debian 附带 jsoncpp-0.6.0-rc2
。我敢打赌 Ubuntu 也是。
只需切换到 jsoncpp-0.8.z
, which are binary-compatible with 0.6.0-rc2
并包含来自 1.y.z
的大部分增强功能和错误修复。
实际上 Debian 目前正在切换到 0.8.z
。在 Ubuntu 更新其发布的版本之前,您可能不得不避免使用新功能(主要是 Builders),而是使用已弃用的 Readers/Writers,这可能就是您所做的已经。所以你应该很容易让一切正常工作。
如何解决以下 linker 错误 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";
当我尝试 link 针对 Ubuntu 14.04
附带的默认 libjsoncpp-dev 时,出现以下 linker 错误undefined reference to `Json::Value::operator=(Json::Value)'
额外信息:
而且我在编译时没有得到这个 linker 错误,并且 linked 针对来自 GitHub 的最新 jsoncpp。
value.h(由 ubuntu apt 安装)在 /usr/include/jsoncpp/json 中有
Value &operator=( const Value &other );
最新的 jsoncpp value.h 有
Value &operator=(Value other);
Debian 附带 jsoncpp-0.6.0-rc2
。我敢打赌 Ubuntu 也是。
只需切换到 jsoncpp-0.8.z
, which are binary-compatible with 0.6.0-rc2
并包含来自 1.y.z
的大部分增强功能和错误修复。
实际上 Debian 目前正在切换到 0.8.z
。在 Ubuntu 更新其发布的版本之前,您可能不得不避免使用新功能(主要是 Builders),而是使用已弃用的 Readers/Writers,这可能就是您所做的已经。所以你应该很容易让一切正常工作。