我有一些使用jsonRpc库编译QT应用程序的困难:
- libjson-rpc-cpp
- jsoncpp
编译时,我有这个错误:
Undefined symbols for architecture x86_64:
Json::Value::operator=(Json::Value const&)", referenced from:
jsonrpc::RpcProtocolServerV1::WrapException(Json::Value const&, jsonrpc::JsonRpcException const&, Json::Value&) in libjson-rpc-cpp.a(rpcprotocolserverv1.o)
jsonrpc::RpcProtocolServerV1::WrapResult(Json::Value const&, Json::Value&, Json::Value&) in libjson-rpc-cpp.a(rpcprotocolserverv1.o)
jsonrpc::RpcProtocolServerV1::WrapError(Json::Value const&, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Json::Value&) in libjson-rpc-cpp.a(rpcprotocolserverv1.o)
jsonrpc::RpcProtocolServerV2::WrapException(Json::Value const&, jsonrpc::JsonRpcException const&, Json::Value&) in libjson-rpc-cpp.a(rpcprotocolserverv2.o)
jsonrpc::RpcProtocolServerV2::WrapResult(Json::Value const&, Json::Value&, Json::Value&) in libjson-rpc-cpp.a(rpcprotocolserverv2.o)
jsonrpc::RpcProtocolServerV2::WrapError(Json::Value const&, int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, Json::Value&) in libjson-rpc-cpp.a(rpcprotocolserverv2.o)
jsonrpc::AbstractProtocolHandler::ProcessRequest(Json::Value const&, Json::Value&) in libjson-rpc-cpp.a(abstractprotocolhandler.o)
...
我尝试在value.h中找到overload =运算符的定义,我发现:
Value& operator=(Value other);
这可能与链接器问题有关,但我真的不知道如何解决它..
有人可以帮我一点吗?
谢谢
答案 0 :(得分:0)
实际上,libjson-rpc-cpp.a的版本是使用非更新的jsoncpp库来编译的。所以我重新生成了一个更新的libjson-rpc-cpp.a,现在它可以正常工作。
答案 1 :(得分:0)
编译OSVR时遇到了同样的错误。问题的根源是/ usr / local / include中过时的jsoncpp标头。
对我有用的是什么:
从github源代码构建并安装jsoncpp,包括动态库: