I'm tring to run jubatus-msgpack-rpc example code(https://github.com/jubatus/jubatus-msgpack-rpc/tree/master/cpp , simple client and simple server) in clion and keep getting errors . here are error message
CMakeFiles/server.dir/main.cpp.o:In function'main': /home/ghost/software/SourceCode/c++/server/main.cpp:64:In'msgpack::rpc::server::server(msgpack::rpc::loop)'undefined reference /home/ghost/software/SourceCode/c++/server/main.cpp:66:In'msgpack::rpc::server::serve(msgpack::rpc::dispatcher*)'undefined reference /home/ghost/software/SourceCode/c++/server/main.cpp:67:In'msgpack::rpc::server::listen(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, unsigned short)'undefined reference /home/ghost/software/SourceCode/c++/server/main.cpp:71:In'msgpack::rpc::client::client(std::__cxx11::basic_string<char, std::char_traits, std::allocator > const&, unsigned short, msgpack::rpc::loop)'undefined reference /home/ghost/software/SourceCode/c++/server/main.cpp:71:In'msgpack::rpc::client::~client()'undefined reference /home/ghost/software/SourceCode/c++/server/main.cpp:64:In'msgpack::rpc::server::~server()'undefined reference /home/ghost/software/SourceCode/c++/server/main.cpp:71:In'msgpack::rpc::client::~client()'undefined reference /home/ghost/software/SourceCode/c++/server/main.cpp:64:In'msgpack::rpc::server::~server()'undefined reference CMakeFiles/server.dir/main.cpp.o:In function'msgpack::vrefbuffer::vrefbuffer(unsigned long, unsigned long)': /usr/local/include/msgpack/vrefbuffer.hpp:32:In'msgpack_vrefbuffer_init'undefined reference CMakeFiles/server.dir/main.cpp.o:In function'msgpack::vrefbuffer::~vrefbuffer()': /usr/local/include/msgpack/vrefbuffer.hpp:37:In'msgpack_vrefbuffer_destroy'undefined reference CMakeFiles/server.dir/main.cpp.o:In function'msgpack::vrefbuffer::append_ref(char const*, unsigned long)': /usr/local/include/msgpack/vrefbuffer.hpp:52:In'msgpack_vrefbuffer_append_ref'undefined reference CMakeFiles/server.dir/main.cpp.o:In function'msgpack::vrefbuffer::append_copy(char const*, unsigned long)': /usr/local/include/msgpack/vrefbuffer.hpp:59:In'msgpack_vrefbuffer_append_copy'undefined reference CMakeFiles/server.dir/main.cpp.o:In function'msgpack::rpc::loop::loop()': /usr/local/include/jubatus/msgpack/rpc/loop.h:31:In'mp::wavy::loop::loop()'undefined reference CMakeFiles/server.dir/main.cpp.o:In function'Server::dispatch(msgpack::rpc::request)': /home/ghost/software/SourceCode/c++/server/main.cpp:26:In'msgpack::rpc::request::method()'undefined reference /home/ghost/software/SourceCode/c++/server/main.cpp:34:In'msgpack::rpc::request::params()'undefined reference CMakeFiles/server.dir/main.cpp.o:In function'msgpack::rpc::loop_utilmsgpack::rpc::session_pool::start(unsigned long)': /usr/local/include/jubatus/msgpack/rpc/loop_util.h:32:In'msgpack::rpc::session_pool::get_loop()'undefined reference /usr/local/include/jubatus/msgpack/rpc/loop_util.h:32:In'mp::wavy::loop::start(unsigned long)'undefined reference CMakeFiles/server.dir/main.cpp.o:In function'long msgpack::rpc::future::get()': /usr/local/include/jubatus/msgpack/rpc/future.h:117:In'msgpack::rpc::future::get_impl()'undefined reference CMakeFiles/server.dir/main.cpp.o:In function'std::__cxx11::basic_string<char, std::char_traits, std::allocator > msgpack::rpc::future::get<std::__cxx11::basic_string<char, std::char_traits, std::allocator > >()': /usr/local/include/jubatus/msgpack/rpc/future.h:117:In'msgpack::rpc::future::get_impl()'undefined reference CMakeFiles/server.dir/main.cpp.o:In function'void msgpack::rpc::request::call<msgpack::type::nil, unsigned char>(msgpack::type::nil&, unsigned char&)': /usr/local/include/jubatus/msgpack/rpc/request.h:119:In'msgpack::rpc::request::is_sent() const'undefined reference /usr/local/include/jubatus/msgpack/rpc/request.h:122:In'msgpack::rpc::request::get_msgid() const'undefined reference /usr/local/include/jubatus/msgpack/rpc/request.h:125:In'msgpack::rpc::request::send_data(msgpack::sbuffer*)'undefined reference CMakeFiles/server.dir/main.cpp.o:In function'void msgpack::rpc::request::call<msgpack::type::nil, std::__cxx11::basic_string<char, std::char_traits, std::allocator > >(msgpack::type::nil&, std::__cxx11::basic_string<char, std::char_traits, std::allocator >&)': /usr/local/include/jubatus/msgpack/rpc/request.h:119:In'msgpack::rpc::request::is_sent() const'undefined reference /usr/local/include/jubatus/msgpack/rpc/request.h:122:In'msgpack::rpc::request::get_msgid() const'undefined reference /usr/local/include/jubatus/msgpack/rpc/request.h:125:In'msgpack::rpc::request::send_data(msgpack::sbuffer*)'undefined reference CMakeFiles/server.dir/main.cpp.o:In function'void msgpack::rpc::request::call<int, msgpack::type::nil>(int&, msgpack::type::nil&)': /usr/local/include/jubatus/msgpack/rpc/request.h:119:In'msgpack::rpc::request::is_sent() const'undefined reference /usr/local/include/jubatus/msgpack/rpc/request.h:122:In'msgpack::rpc::request::get_msgid() const'undefined reference /usr/local/include/jubatus/msgpack/rpc/request.h:125:In'msgpack::rpc::request::send_data(msgpack::sbuffer*)'undefined reference CMakeFiles/server.dir/main.cpp.o:In function'void msgpack::rpc::request::call<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, msgpack::type::nil>(std::__cxx11::basic_string<char, std::char_traits, std::allocator >&, msgpack::type::nil&)': /usr/local/include/jubatus/msgpack/rpc/request.h:119:In'msgpack::rpc::request::is_sent() const'undefined reference /usr/local/include/jubatus/msgpack/rpc/request.h:122:In'msgpack::rpc::request::get_msgid() const'undefined reference /usr/local/include/jubatus/msgpack/rpc/request.h:125:In'msgpack::rpc::request::send_data(msgpack::sbuffer*)'undefined reference CMakeFiles/server.dir/main.cpp.o:In function'msgpack::rpc::future msgpack::rpc::session::send_request<std::__cxx11::basic_string<char, std::char_traits, std::allocator >, msgpack::type::tuple<void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void> >(std::__cxx11::basic_string<char, std::char_traits, std::allocator >, msgpack::type::tuple<void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void, void> const&, std::tr1::shared_ptrmsgpack::zone)': /usr/local/include/jubatus/msgpack/rpc/session.h:86:In'msgpack::rpc::session::next_msgid()'undefined reference /usr/local/include/jubatus/msgpack/rpc/session.h:93:In'msgpack::rpc::session::send_request_impl(unsigned int, std::auto_ptrmsgpack::rpc::with_shared_zone<msgpack::vrefbuffer )'undefined reference /usr/local/include/jubatus/msgpack/rpc/session.h:98:In'msgpack::rpc::session::send_request_impl(unsigned int, msgpack::sbuffer*)'undefined reference CMakeFiles/server.dir/main.cpp.o:In function'std::tr1::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<mp::wavy::loop*>(mp::wavy::loop*)': /usr/local/gcc-7.3.0/include/c++/7.3.0/tr1/shared_ptr.h:305:In'mp::wavy::loop::~loop()'undefined reference CMakeFiles/server.dir/main.cpp.o:In function'std::tr1::_Sp_deleter<mp::wavy::loop>::operator()(mp::wavy::loop*) const': /usr/local/gcc-7.3.0/include/c++/7.3.0/tr1/shared_ptr.h:283:In'mp::wavy::loop::~loop()'undefined reference collect2: error:ld return 1 CMakeFiles/server.dir/build.make:94: recipe for target 'server' failed make[3]: *** [server] Error 1 CMakeFiles/Makefile2:67: recipe for target 'CMakeFiles/server.dir/all' failed make[2]: *** [CMakeFiles/server.dir/all] Error 2 CMakeFiles/Makefile2:79: recipe for target 'CMakeFiles/server.dir/rule' failed make[1]: *** [CMakeFiles/server.dir/rule] Error 2 Makefile:118: recipe for target 'server' failed make: *** [server] Error 2
here is the code
class myserver : public msgpack::rpc::server::base { public: void add(msgpack::rpc::request req, int a1, int a2) { req.result(a1 + a2); } public: void dispatch(msgpack::rpc::request req) try { std::string method; req.method().convert(&method); if(method == "add") { msgpack::type::tuple<int, int> params; req.params().convert(¶ms); add(req, params.get<0>(), params.get<1>()); } else { req.error(msgpack::rpc::NO_METHOD_ERROR); } } catch (msgpack::type_error& e) { req.error(msgpack::rpc::ARGUMENT_ERROR); return; } catch (std::exception& e) { req.error(std::string(e.what())); return; } }; int main() { myserver svr; svr.instance.listen("0.0.0.0", 9090); svr.instance.run(4); // run 4 threads } why it's keeping get errors and how to slove it ?
https://stackoverflow.com/questions/65599367/c-jubatus-msgpack-rpc-linker-errors January 07, 2021 at 12:15AM
没有评论:
发表评论