AshamaneProject / AshamaneCore

AshamaneCore Open Source MMO Framework (master = 9.0.2.36949, bfa = 8.3.7.35284, legion = 7.3.5.26972)
GNU General Public License v2.0
321 stars 358 forks source link

Compiling Error Ubuntu Server 20.04 Asio/boost errors? #262

Closed jar0fair closed 3 years ago

jar0fair commented 4 years ago

This is on the legion version of the core.

[ 10%] Building CXX object src/common/CMakeFiles/common.dir/Utilities/EventProcessor.cpp.o
In file included from /home/verdant/AshamaneCore/src/common/Metric/Metric.cpp:25:
In file included from /usr/include/boost/asio/deadline_timer.hpp:24:
/usr/include/boost/asio/basic_deadline_timer.hpp:127:1: error: too many template parameters in template redeclaration
template <typename Time,
^~~~~~~~~~~~~~~~~~~~~~~~
/home/verdant/AshamaneCore/src/common/Asio/AsioHacksFwd.h:51:9: note: previous template declaration is here
        template <typename Time, typename TimeTraits>
        ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/verdant/AshamaneCore/src/common/Metric/Metric.cpp:25:
/usr/include/boost/asio/deadline_timer.hpp:32:9: error: too few template arguments for class template 'basic_deadline_timer'
typedef basic_deadline_timer<boost::posix_time::ptime> deadline_timer;
        ^
/home/verdant/AshamaneCore/src/common/Asio/AsioHacksFwd.h:52:15: note: template is declared here
        class basic_deadline_timer;
              ^
In file included from /home/verdant/AshamaneCore/src/common/Metric/Metric.cpp:26:
In file included from /usr/include/boost/asio/ip/tcp.hpp:25:
/usr/include/boost/asio/ip/basic_resolver.hpp:53:1: error: too many template parameters in template redeclaration
template <typename InternetProtocol, typename Executor = executor>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/verdant/AshamaneCore/src/common/Asio/AsioHacksFwd.h:58:13: note: previous template declaration is here
            template <typename InternetProtocol>
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /home/verdant/AshamaneCore/src/common/Metric/Metric.cpp:26:
In file included from /usr/include/boost/asio/ip/tcp.hpp:25:
/usr/include/boost/asio/ip/basic_resolver.hpp:67:1: error: too many template parameters in template redeclaration
template <typename InternetProtocol, typename Executor>
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/verdant/AshamaneCore/src/common/Asio/AsioHacksFwd.h:58:13: note: previous template declaration is here
            template <typename InternetProtocol>
            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/verdant/AshamaneCore/src/common/Metric/Metric.cpp:203:20: error: implicit instantiation of undefined template 'boost::asio::basic_deadline_timer<boost::posix_time::ptime, boost::asio::time_traits<boost::posix_time::ptime> >'
        _batchTimer->expires_from_now(boost::posix_time::seconds(_updateInterval));
                   ^
/home/verdant/AshamaneCore/src/common/Asio/AsioHacksFwd.h:52:15: note: template is declared here
        class basic_deadline_timer;
              ^
/home/verdant/AshamaneCore/src/common/Metric/Metric.cpp:204:20: error: implicit instantiation of undefined template 'boost::asio::basic_deadline_timer<boost::posix_time::ptime, boost::asio::time_traits<boost::posix_time::ptime> >'
        _batchTimer->async_wait(std::bind(&Metric::SendBatch, this));
                   ^
/home/verdant/AshamaneCore/src/common/Asio/AsioHacksFwd.h:52:15: note: template is declared here
        class basic_deadline_timer;
              ^
In file included from /home/verdant/AshamaneCore/src/common/Metric/Metric.cpp:22:
In file included from /home/verdant/AshamaneCore/src/common/Asio/Strand.h:21:
/home/verdant/AshamaneCore/src/common/Asio/IoContext.h:57:28: error: implicit instantiation of undefined template 'boost::asio::basic_deadline_timer<boost::posix_time::ptime, boost::asio::time_traits<boost::posix_time::ptime> >'
            return ioObject.get_executor().context();
                           ^
/home/verdant/AshamaneCore/src/common/Metric/Metric.cpp:219:36: note: in instantiation of function template specialization 'Trinity::Asio::get_io_context<boost::asio::basic_deadline_timer<boost::posix_time::ptime, boost::asio::time_traits<boost::posix_time::ptime> > &>' requested here
    if (_enabled && Trinity::Asio::get_io_context(*_batchTimer).stopped())
                                   ^
/home/verdant/AshamaneCore/src/common/Asio/AsioHacksFwd.h:52:15: note: template is declared here
        class basic_deadline_timer;
              ^
/home/verdant/AshamaneCore/src/common/Metric/Metric.cpp:227:28: error: implicit instantiation of undefined template 'boost::asio::basic_deadline_timer<boost::posix_time::ptime, boost::asio::time_traits<boost::posix_time::ptime> >'
        _overallStatusTimer->expires_from_now(boost::posix_time::seconds(_overallStatusTimerInterval));
                           ^
/home/verdant/AshamaneCore/src/common/Asio/AsioHacksFwd.h:52:15: note: template is declared here
        class basic_deadline_timer;
              ^
/home/verdant/AshamaneCore/src/common/Metric/Metric.cpp:228:28: error: implicit instantiation of undefined template 'boost::asio::basic_deadline_timer<boost::posix_time::ptime, boost::asio::time_traits<boost::posix_time::ptime> >'
        _overallStatusTimer->async_wait([this](const boost::system::error_code&)
                           ^
/home/verdant/AshamaneCore/src/common/Asio/AsioHacksFwd.h:52:15: note: template is declared here
        class basic_deadline_timer;
              ^
[ 10%] Building CXX object src/common/CMakeFiles/common.dir/Utilities/Random.cpp.o
[ 10%] Building CXX object src/common/CMakeFiles/common.dir/Utilities/StartProcess.cpp.o
In file included from /home/verdant/AshamaneCore/src/common/Metric/Metric.cpp:1:
In file included from /home/verdant/AshamaneCore/build/src/common/cotire/common_CXX_prefix.hxx:4:
In file included from /home/verdant/AshamaneCore/build/src/common/cotire/common_CXX_prefix.cxx:4:
In file included from /home/verdant/AshamaneCore/src/common/PrecompiledHeaders/commonPCH.h:1:
In file included from /home/verdant/AshamaneCore/src/common/Collision/BoundingIntervalHierarchy.h:22:
In file included from /home/verdant/AshamaneCore/dep/g3dlite/include/G3D/Vector3.h:18:
In file included from /home/verdant/AshamaneCore/dep/g3dlite/include/G3D/platform.h:366:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/tr1/memory:39:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/memory:80:
/usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_ptr.h:857:34: error: implicit instantiation of undefined template 'boost::asio::basic_deadline_timer<boost::posix_time::ptime, boost::asio::time_traits<boost::posix_time::ptime> >'
    { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }
                                 ^
/home/verdant/AshamaneCore/src/common/Metric/Metric.cpp:32:28: note: in instantiation of function template specialization 'std::make_unique<boost::asio::basic_deadline_timer<boost::posix_time::ptime, boost::asio::time_traits<boost::posix_time::ptime> >, Trinity::Asio::IoContext &>' requested here
    _batchTimer = Trinity::make_unique<boost::asio::deadline_timer>(ioContext);
                           ^
/home/verdant/AshamaneCore/src/common/Asio/AsioHacksFwd.h:52:15: note: template is declared here
        class basic_deadline_timer;
              ^
In file included from /home/verdant/AshamaneCore/src/common/Metric/Metric.cpp:1:
In file included from /home/verdant/AshamaneCore/build/src/common/cotire/common_CXX_prefix.hxx:4:
In file included from /home/verdant/AshamaneCore/build/src/common/cotire/common_CXX_prefix.cxx:4:
In file included from /home/verdant/AshamaneCore/src/common/PrecompiledHeaders/commonPCH.h:1:
In file included from /home/verdant/AshamaneCore/src/common/Collision/BoundingIntervalHierarchy.h:22:
In file included from /home/verdant/AshamaneCore/dep/g3dlite/include/G3D/Vector3.h:18:
In file included from /home/verdant/AshamaneCore/dep/g3dlite/include/G3D/platform.h:366:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/tr1/memory:39:
In file included from /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/memory:80:
/usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_ptr.h:79:16: error: implicit instantiation of undefined template 'boost::asio::basic_deadline_timer<boost::posix_time::ptime, boost::asio::time_traits<boost::posix_time::ptime> >'
        static_assert(sizeof(_Tp)>0,
                      ^
/usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/unique_ptr.h:292:4: note: in instantiation of member function 'std::default_delete<boost::asio::basic_deadline_timer<boost::posix_time::ptime, boost::asio::time_traits<boost::posix_time::ptime> > >::operator()' requested here
          get_deleter()(std::move(__ptr));
          ^
/home/verdant/AshamaneCore/src/common/Metric/Metric.cpp:32:19: note: in instantiation of member function 'std::unique_ptr<boost::asio::basic_deadline_timer<boost::posix_time::ptime, boost::asio::time_traits<boost::posix_time::ptime> >, std::default_delete<boost::asio::basic_deadline_timer<boost::posix_time::ptime, boost::asio::time_traits<boost::posix_time::ptime> > > >::~unique_ptr' requested here
    _batchTimer = Trinity::make_unique<boost::asio::deadline_timer>(ioContext);
                  ^
/home/verdant/AshamaneCore/src/common/Asio/AsioHacksFwd.h:52:15: note: template is declared here
        class basic_deadline_timer;
              ^
In file included from /home/verdant/AshamaneCore/src/common/Metric/Metric.cpp:26:
In file included from /usr/include/boost/asio/ip/tcp.hpp:20:
In file included from /usr/include/boost/asio/basic_socket_iostream.hpp:24:
/usr/include/boost/asio/basic_socket_streambuf.hpp:287:19: error: implicit instantiation of undefined template 'boost::asio::ip::basic_resolver<boost::asio::ip::tcp>'
    resolver_type resolver(socket().get_executor());
                  ^
/usr/include/boost/asio/basic_socket_iostream.hpp:270:18: note: in instantiation of function template specialization 'boost::asio::basic_socket_streambuf<boost::asio::ip::tcp, std::chrono::_V2::steady_clock, boost::asio::wait_traits<std::chrono::_V2::steady_clock> >::connect<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >' requested here
    if (rdbuf()->connect(x...) == 0)
                 ^
/home/verdant/AshamaneCore/src/common/Metric/Metric.cpp:41:12: note: in instantiation of function template specialization 'boost::asio::basic_socket_iostream<boost::asio::ip::tcp, std::chrono::_V2::steady_clock, boost::asio::wait_traits<std::chrono::_V2::steady_clock> >::connect<std::__cxx11::basic_string<char>, std::__cxx11::basic_string<char> >' requested here
    stream.connect(_hostname, _port);
           ^
/home/verdant/AshamaneCore/src/common/Asio/AsioHacksFwd.h:59:19: note: template is declared here
            class basic_resolver;
                  ^
12 errors generated.
make[2]: *** [src/common/CMakeFiles/common.dir/build.make:582: src/common/CMakeFiles/common.dir/Metric/Metric.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:1340: src/common/CMakeFiles/common.dir/all] Error 2
make: *** [Makefile:130: all] Error 2
jar0fair commented 4 years ago

For anyone else receiving this error. It was fixed by downgrading to Ubuntu 18LTR and installing an older version of boost with sudo apt-get install libboost1.62-all-dev