jsoncpp operator= 中未定义的引用

sat*_*ram 5 c++ jsoncpp c++11 ubuntu-14.04

如何解决以下链接器错误 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";
Run Code Online (Sandbox Code Playgroud)

当我尝试链接 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 );
Run Code Online (Sandbox Code Playgroud)

和最新的 jsoncpp value.h 有

Value &operator=(Value other);
Run Code Online (Sandbox Code Playgroud)

cdu*_*001 2

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

只需切换到jsoncpp-0.8.z,它与.0.6.0-rc21.y.z

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