magnetwork / magnet

Magnet cryptocurrency (MAG)
http://magnetwork.io
26 stars 21 forks source link

Error compile magnetd with libboost.1.66.0-1 #12

Closed yoburtu closed 6 years ago

yoburtu commented 6 years ago

Hi,

I have issues with compile magnetd in Arch Linux with libboost 1.66.0-1. With the previous library (1.65), it worked fine.

$ export OPENSSL_INCLUDE_PATH=/usr/include/openssl-1.0 $ export OPENSSL_LIB_PATH=/usr/lib/openssl-1.0

$ make -f makefile.unix USE_UPNP= /bin/sh ../share/genbuild.sh obj/build.h g++ -c -O2 -pthread -Wall -Wextra -Wno-ignored-qualifiers -Wformat -Wformat-security -Wno-unused-parameter -Wunused-function -Wunused-variable -fpermissive -Wconversion-null -g -DBOOST_SPIRIT_THREADSAFE -I/home/apepus/Crypto/mag/magnet/src -I/home/apepus/Crypto/mag/magnet/src/obj -I/usr/include/openssl-1.0 -DUSE_IPV6=1 -DENABLE_WALLET -I/home/apepus/Crypto/mag/magnet/src/secp256k1/include -I/home/apepus/Crypto/mag/magnet/src/leveldb/include -I/home/apepus/Crypto/mag/magnet/src/leveldb/helpers -DHAVE_BUILD_INFO -fno-stack-protector -fstack-protector-all -Wstack-protector -D_FORTIFY_SOURCE=2 -MMD -MF obj/rpcclient.d -o obj/rpcclient.o rpcclient.cpp rpcclient.cpp: In function ‘json_spirit::Object CallRPC(const string&, const Array&)’: rpcclient.cpp:44: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); ^ In file included from /usr/include/boost/asio/ssl/context.hpp:757:0, from /usr/include/boost/asio/ssl.hpp:18, from rpcprotocol.h:18, from rpcclient.cpp:9: /usr/include/boost/asio/ssl/impl/context.ipp:326:1: note: candidate: boost::asio::ssl::context::context(boost::asio::ssl::context&&) context::context(context&& other) ^~~ /usr/include/boost/asio/ssl/impl/context.ipp:326:1: note: candidate expects 1 argument, 2 provided /usr/include/boost/asio/ssl/impl/context.ipp:63:1: note: 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: note: candidate expects 1 argument, 2 provided In file included from util.h:16:0, from rpcclient.cpp:10: tinyformat.h: In static member function ‘static const char tinyformat::detail::FormatIterator::streamStateFromFormat(std::ostream&, unsigned int&, const char, int, int)’: tinyformat.h:785:21: warning: this statement may fall through [-Wimplicit-fallthrough=] out.setf(std::ios::uppercase);


tinyformat.h:786:9: note: here
         case 'x': case 'p':
         ^~~~
tinyformat.h:791:21: warning: this statement may fall through [-Wimplicit-fallthrough=]
             out.setf(std::ios::uppercase);
             ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
tinyformat.h:792:9: note: here
         case 'e':
         ^~~~
tinyformat.h:797:21: warning: this statement may fall through [-Wimplicit-fallthrough=]
             out.setf(std::ios::uppercase);
             ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
tinyformat.h:798:9: note: here
         case 'f':
         ^~~~
tinyformat.h:802:21: warning: this statement may fall through [-Wimplicit-fallthrough=]
             out.setf(std::ios::uppercase);
             ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~
tinyformat.h:803:9: note: here
         case 'g':
         ^~~~
make: *** [makefile.unix:217: obj/rpcclient.o] Error 1
FredericRezeau commented 6 years ago

Hi,

The constructor taking a reference to an io_service object was deprecated in 1.65 and most likely 1.66 removed it: http://www.boost.org/doc/libs/1_65_1/doc/html/boost_asio/reference/ssl__context/context.html

I suggest you link your build to boost 1.65, you can export paths to your 1.65 boost install using BOOST_INCLUDE_PATH and BOOST_LIB_PATH.

e.g.

$ export BOOST_INCLUDE_PATH=/your/boost/1.65/include/... $ export BOOST_LIB_PATH=/your/boost/1.65/lib/...