Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Does not compile with boost 1.66 #47

Open
DoBi opened this issue May 16, 2018 · 0 comments · May be fixed by #49
Open

Does not compile with boost 1.66 #47

DoBi opened this issue May 16, 2018 · 0 comments · May be fixed by #49

Comments

@DoBi
Copy link

DoBi commented May 16, 2018

I have tried to compile the new version of magid on my Arch machine. It throws some errors because of I have installed boost 1.66. It is similar to this issue of Zetacoin:

magirpc.cpp:668:102: Fehler: falsche Anzahl der Templateargumente (2, sollte 1 sein)
 t::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
                                                                     ^

In file included from /usr/include/boost/asio.hpp:30,
                 from magirpc.cpp:15:
/usr/include/boost/asio/basic_socket_acceptor.hpp:73:7: Anmerkung: für »template<class Protocol> class boost::asio::basic_socket_acceptor« bereitgestellt
 class basic_socket_acceptor
       ^~~~~~~~~~~~~~~~~~~~~
magirpc.cpp:668:104: Fehler: Templateargument 1 ist ungültig
 :shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
                                                                     ^

magirpc.cpp:678:95: Fehler: falsche Anzahl der Templateargumente (2, sollte 1 sein)
 t::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
                                                                     ^

In file included from /usr/include/boost/asio.hpp:30,
                 from magirpc.cpp:15:
/usr/include/boost/asio/basic_socket_acceptor.hpp:73:7: Anmerkung: für »template<class Protocol> class boost::asio::basic_socket_acceptor« bereitgestellt
 class basic_socket_acceptor
       ^~~~~~~~~~~~~~~~~~~~~
magirpc.cpp:678:97: Fehler: Templateargument 1 ist ungültig
 :shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
                                                                     ^

magirpc.cpp: In Funktion »void RPCListen(int, boost::asio::ssl::context&, bool)«:
magirpc.cpp:683:91: Fehler: Basisoperand von »->« ist kein Zeiger
 Impl<Protocol>* conn = new AcceptedConnectionImpl<Protocol>(acceptor->get_io_service(), context, fUseSSL);
                                                                     ^~

magirpc.cpp:685:13: Fehler: Basisoperand von »->« ist kein Zeiger
     acceptor->async_accept(
             ^~
magirpc.cpp: Im globalen Gültigkeitsbereich:
magirpc.cpp:700:102: Fehler: falsche Anzahl der Templateargumente (2, sollte 1 sein)
 t::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
                                                                     ^

In file included from /usr/include/boost/asio.hpp:30,
                 from magirpc.cpp:15:
/usr/include/boost/asio/basic_socket_acceptor.hpp:73:7: Anmerkung: für »template<class Protocol> class boost::asio::basic_socket_acceptor« bereitgestellt
 class basic_socket_acceptor
       ^~~~~~~~~~~~~~~~~~~~~
magirpc.cpp:700:104: Fehler: Templateargument 1 ist ungültig
 :shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
                                                                     ^

magirpc.cpp: In Funktion »void RPCAcceptHandler(int, boost::asio::ssl::context&, bool, AcceptedConnection*, const boost::system::error_code&)«:
magirpc.cpp:710:17: Fehler: Basisoperand von »->« ist kein Zeiger
      && acceptor->is_open())
                 ^~
magirpc.cpp:711:45: Fehler: keine passende Funktion für Aufruf von »RPCListen(int&, boost::asio::ssl::context&, const bool&)«
         RPCListen(acceptor, context, fUseSSL);
                                             ^
magirpc.cpp:678:13: Anmerkung: candidate: »template<class Protocol, class SocketAcceptorService> void RPCListen(int, boost::asio::ssl::context&, bool)«
 static void RPCListen(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
             ^~~~~~~~~
magirpc.cpp:678:13: Anmerkung:   Herleitung/Ersetzung von Templateargument gescheitert:
magirpc.cpp:711:45: Anmerkung:  Template-Parameter »Protocol« konnte nicht ermittelt werden
         RPCListen(acceptor, context, fUseSSL);
                                             ^
magirpc.cpp: In Funktion »void ThreadRPCServer2(void*)«:
magirpc.cpp:775:58: Fehler: keine passende Funktion für Aufruf von »boost::asio::ssl::context::context(boost::asio::io_service&, boost::asio::ssl::context_base::method)«
     ssl::context context(io_service, ssl::context::sslv23);
                                                          ^
In file included from /usr/include/boost/asio/ssl/context.hpp:757,
                 from /usr/include/boost/asio/ssl.hpp:18,
                 from magirpc.cpp:24:
/usr/include/boost/asio/ssl/impl/context.ipp:326:1: Anmerkung: candidate: »boost::asio::ssl::context::context(boost::asio::ssl::context&&)«
 context::context(context&& other)
 ^~~~~~~
/usr/include/boost/asio/ssl/impl/context.ipp:326:1: Anmerkung:   Kandidat erwartet 1 Argument, 2 angegeben
/usr/include/boost/asio/ssl/impl/context.ipp:63:1: Anmerkung: candidate: »boost::asio::ssl::context::context(boost::asio::ssl::context_base::method)«
 context::context(context::method m)
 ^~~~~~~
/usr/include/boost/asio/ssl/impl/context.ipp:63:1: Anmerkung:   Kandidat erwartet 1 Argument, 2 angegeben
magirpc.cpp:791:41: Fehler: »class boost::asio::ssl::context« hat kein Element namens »impl«
         SSL_CTX_set_cipher_list(context.impl(), strCiphers.c_str());
                                         ^~~~
magirpc.cpp:816:45: Fehler: keine passende Funktion für Aufruf von »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:678:13: Anmerkung: candidate: »template<class Protocol, class SocketAcceptorService> void RPCListen(int, boost::asio::ssl::context&, bool)«
 static void RPCListen(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
             ^~~~~~~~~
magirpc.cpp:678:13: Anmerkung:   Herleitung/Ersetzung von Templateargument gescheitert:
magirpc.cpp:816:45: Anmerkung:  Template-Parameter »Protocol« konnte nicht ermittelt werden
         RPCListen(acceptor, context, fUseSSL);
                                             ^
magirpc.cpp:842:49: Fehler: keine passende Funktion für Aufruf von »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:678:13: Anmerkung: candidate: »template<class Protocol, class SocketAcceptorService> void RPCListen(int, boost::asio::ssl::context&, bool)«
 static void RPCListen(boost::shared_ptr< basic_socket_acceptor<Protocol, SocketAcceptorService> > acceptor,
             ^~~~~~~~~
magirpc.cpp:678:13: Anmerkung:   Herleitung/Ersetzung von Templateargument gescheitert:
magirpc.cpp:842:49: Anmerkung:  Template-Parameter »Protocol« konnte nicht ermittelt werden
             RPCListen(acceptor, context, fUseSSL);
                                                 ^
magirpc.cpp: In Funktion »json_spirit::Object CallRPC(const string&, const Array&)«:
magirpc.cpp:1085:58: Fehler: keine passende Funktion für Aufruf von »boost::asio::ssl::context::context(boost::asio::io_service&, boost::asio::ssl::context_base::method)«
     ssl::context context(io_service, ssl::context::sslv23);
                                                          ^
In file included from /usr/include/boost/asio/ssl/context.hpp:757,
                 from /usr/include/boost/asio/ssl.hpp:18,
                 from magirpc.cpp:24:
/usr/include/boost/asio/ssl/impl/context.ipp:326:1: Anmerkung: candidate: »boost::asio::ssl::context::context(boost::asio::ssl::context&&)«
 context::context(context&& other)
 ^~~~~~~
/usr/include/boost/asio/ssl/impl/context.ipp:326:1: Anmerkung:   Kandidat erwartet 1 Argument, 2 angegeben
/usr/include/boost/asio/ssl/impl/context.ipp:63:1: Anmerkung: candidate: »boost::asio::ssl::context::context(boost::asio::ssl::context_base::method)«
 context::context(context::method m)
 ^~~~~~~
/usr/include/boost/asio/ssl/impl/context.ipp:63:1: Anmerkung:   Kandidat erwartet 1 Argument, 2 angegeben 

After applying the patch from the zetacoin issue I am able to compile everything without an error.

@DoBi DoBi changed the title Does not comile with boost 1.66 Does not compile with boost 1.66 May 16, 2018
@DoBi DoBi linked a pull request May 16, 2018 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant