架构x86_64 jsonrpc库的未定义符号
Undefined symbols for architecture x86_64 jsonrpc library
我有一些困难的时间与QT使用jsonRpc库编译应用程序:
- 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中找到重载=操作符的定义,我发现如下:
Value& operator=(Value other);
这可能与链接器问题有关,但我真的不知道如何解决它…
有人能帮我一下吗?谢谢你
我在编译OSVR时也有同样的错误。问题的根源是/usr/local/include中过时的jsoncpp头文件。
什么对我有用:
- 从/usr/local/lib和/usr/local/include中删除jsoncpp从/usr/local/lib和/usr/local/include中删除libjson-rpc-cpp
构建并安装jsoncpp,包括动态库,从github源:
- git clone——recursive https://github.com/VRPN/jsoncpp
- git clone——recursive https://github.com/cinemast/libjson-rpc-cpp.git cd jsoncpp
- cmake -DCMAKE_BUILD_TYPE=debug - dbuild_static_lib =ON -DBUILD_SHARED_LIBS=ON -DARCHIVE_INSTALL_DIR=。-G "Unix Makefiles" .
- 使
- make install
- cd . ./libjson-rpc-cpp
- cmake -DCMAKE_BUILD_TYPE=debug - dbuild_static_lib =ON -DBUILD_SHARED_LIBS=ON -DARCHIVE_INSTALL_DIR=。-G "Unix Makefiles" .
- 使
- make install
实际上,libjson-rpc-cpp的版本。A是用jsoncpp库的非更新源编译的。所以我重新生成一个libjson-rpc-cpp。
相关文章:
- vscode g++链路故障:体系结构x86_64的未定义符号
- 体系结构x86_64的未定义符号:std:terminate(),typeinfo,运算符delete[],运算符new
- C++ 中 dlsym 的未定义符号
- 仅在 MacOS 上析构函数的未定义符号
- OSX clang++:用于 cpp 文件中显式实例化模板的体系结构x86_64的未定义符号
- PCL 出错:体系结构x86_64 @pcl的未定义符号
- clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用) - 体系结构的未定义符号 x86_64:
- 体系结构x86_64的未定义符号:链接器错误
- C++ std::vector<int> 体系结构的未定义符号 x86_64:
- 生成文件:体系结构x86_64的未定义符号
- libc++abi未定义符号:_ZTVN10__cxxabif120__si-class_type_infoE
- Xcode"体系结构x86_64的未定义符号"
- 体系结构x86_64的未定义符号:找不到原因
- SWIG链接器:未定义符号:_ZN2cv8fastFreeEPv(cv::fastFree(void*))
- 如何修复架构x86_64的未定义符号,Boost Asio 1.58
- 在Qt5上去静态库:架构的未定义符号x86_64:
- 体系结构x86_64的未定义符号:c++/ h 文件和 cpp 文件
- 监视 SDK 下的未定义符号"__Unwind_SjLj_Unregister"
- 使用 Boost/Python 的未定义符号 - 复杂
- 建筑x86_64的未定义符号:"vtkDebugLeaksManager::vtkDebugLeaksManager()",引用自: