【发布时间】:2015-02-11 02:48:44
【问题描述】:
如何解决以下链接器错误 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);
【问题讨论】:
-
你最好添加标签
c++和c++-11 -
一般情况下,您需要使用与您(最终)要链接的库版本相同的头文件版本进行编译。如果您使用一个版本的头文件进行编译并链接到不同版本的库,则往往会发生不好的事情。如果您希望能够与 Ubuntu 14.04 中的默认 libjsoncpp-dev 链接,请务必使用这些头文件。
标签: c++ c++11 ubuntu-14.04 jsoncpp