【发布时间】:2021-06-28 17:20:48
【问题描述】:
当我编译magi wallet(使用this 指南)时,我在编译时遇到了这些错误。在 Bing 和 Google 上搜索后,我似乎没有找到解决方案,唯一提到这一点的是实际项目的 makefile。我没有找到关于如何解决这个问题的任何信息,而且 GitHub 存储库大约 3 年没有更新,也没有人回答那里的问题。谁能帮我? (所有错误都在下面列出,并按出现时间排序)
magirpc.cpp: At global scope:
magirpc.cpp:668:102: error: wrong number of template arguments (2, should be 1)
static void RPCAcceptHandler(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
magirpc.cpp:668:104: error: template argument 1 is invalid
static void RPCAcceptHandler(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
magirpc.cpp:678:95: error: wrong number of template arguments (2, should be 1)
static void RPCListen(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
magirpc.cpp:678:97: error: template argument 1 is invalid
static void RPCListen(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
magirpc.cpp:683:91: error: base operand of ‘->’ is not a pointer
AcceptedConnectionImpl<Protocol>* conn = new AcceptedConnectionImpl<Protocol>(acceptor->get_io_service(), context, fUseSSL);
magirpc.cpp:685:13: error: base operand of ‘->’ is not a pointer
acceptor->async_accept(
magirpc.cpp:700:102: error: wrong number of template arguments (2, should be 1)
static void RPCAcceptHandler(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
magirpc.cpp:700:104: error: template argument 1 is invalid
static void RPCAcceptHandler(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
magirpc.cpp:710:17: error: base operand of ‘->’ is not a pointer
&& acceptor->is_open())
magirpc.cpp:711:45: error: no matching function for call to ‘RPCListen(int&, boost::asio::ssl::context&, const bool&)’
RPCListen(acceptor, context, fUseSSL);
magirpc.cpp:775:58: error: no matching function for call to ‘boost::asio::ssl::context::context(boost::asio::io_service&, boost::asio::ssl::context_base::method)’
ssl::context context(io_service, ssl::context::sslv23);
magirpc.cpp:791:41: error: ‘class boost::asio::ssl::context’ has no member named ‘impl’
SSL_CTX_set_cipher_list(context.impl(), strCiphers.c_str());
magirpc.cpp:816:45: error: no matching function for call to ‘RPCListen(boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp> >&, boost::asio::ssl::context&, const bool&)’
RPCListen(acceptor, context, fUseSSL);
magirpc.cpp:842:49: error: no matching function for call to ‘RPCListen(boost::shared_ptr<boost::asio::basic_socket_acceptor<boost::asio::ip::tcp> >&, boost::asio::ssl::context&, const bool&)’
RPCListen(acceptor, context, fUseSSL);
magirpc.cpp:1085:58: error: no matching function for call to ‘boost::asio::ssl::context::context(boost::asio::io_service&, boost::asio::ssl::context_base::method)’
ssl::context context(io_service, ssl::context::sslv23);
make: *** [makefile.unix:188: obj/magirpc.o] Error 1
注意:完整的构建日志请点击here。
谢谢,
呸呸呸
【问题讨论】:
-
这不是错误。这只是来自 make 的一条消息,告诉您编译失败。此错误可能与 make 或 makefile 无关,但无法从该信息中得知。您必须更早地查看输出并找到编译器错误(调试构建问题时总是会发现 first 失败,而不是最后一个)。如果需要任何帮助,我们需要查看调用 make 的编译行和编译器给出的错误(至少是第一批,如果有很多的话)。
-
请编辑您的问题并添加信息,使用正确的格式而不是将其放入评论中。很难理解无法格式化的 cmets 中的内容。另外,请在出现此错误之前显示编译器调用。在我看来,您可能有不同版本的 Boost,或者其他什么。
-
你好@MadScientist,我现在更新了帖子,提供了更多信息和出现的错误。如果您需要更多信息,请告诉我。感谢您迄今为止的帮助。