• [^] # Re: solutions ...mais

    Posté par . En réponse au message [Résolu] Compiler wesnoth-1.2. Évalué à 2.

    Merci beaucoup pour ce patch.
    D'après git, le fichier patch est corromput, il faut passer manuelement la section qui coince et après ça va.
    Je l'ai testé à l'instant, et il y a une nouvelle erreur (mais ç'a compilé beaucoup plus longtemps, donc je pense plus une erreur cachée qui a été révélée par la résolution de la première).
    Je te met le log :
    make[2]: Entering directory '/home/pi/wesnoth-1.2.8/src'
    depbase=`echo server/game.o | sed 's|[^/]*`{mathjax} |.deps/&|;s|\.o`||'`;\
    g++ -DHAVE_CONFIG_H -I. -I.. -I/usr/include/freetype2 -I/usr/include/libpng16 -I ./sdl_ttf -I../intl -I../intl -I/usr/include/SDL -D_GNU_SOURCE=1 -D_REENTRANT -DWESNOTH_PATH=\"/usr/local/share/wesnoth\" -DLOCALEDIR=\"translations\" -DHAS_RELATIVE_LOCALEDIR=1 -DFIFODIR=\"/usr/local/var/run/wesnothd\" -O2 -W -Wall -ansi -D_X11 -MT server/game.o -MD -MP -MF $depbase.Tpo -c -o server/game.o server/game.cpp &&\
    mv -f $depbase.Tpo $depbase.Po
    server/game.cpp: In member function ‘bool game::is_observer(network::connection) const’:
    server/game.cpp:53:25: error: no matching function for call to ‘find(std::vector<int>::const_iterator, std::vector<int>::const_iterator, network::connection&)’
    53 | return std::find(observers_.begin(),observers_.end(),player) != observers_.end();
    | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In file included from /usr/include/c++/12/bits/locale_facets.h:48,
    from /usr/include/c++/12/bits/basic_ios.h:37,
    from /usr/include/c++/12/ios:44,
    from /usr/include/c++/12/istream:38,
    from /usr/include/c++/12/sstream:38,
    from server/../util.hpp:18,
    from server/game.cpp:18:
    /usr/include/c++/12/bits/streambuf_iterator.h:434:5: note: candidate: ‘template<class _CharT2> typename __gnu_cxx::__enable_if<std::__is_char<_CharT2>::__value, std::istreambuf_iterator<_CharT, std::char_traits<_CharT> > >::__type std::find(istreambuf_iterator<_CharT, char_traits<_CharT> >, istreambuf_iterator<_CharT, char_traits<_CharT> >, const _CharT2&)’
    434 | find(istreambuf_iterator<_CharT> __first,
    | ^~~~
    /usr/include/c++/12/bits/streambuf_iterator.h:434:5: note: template argument deduction/substitution failed:
    server/game.cpp:53:25: note: ‘__gnu_cxx::__normal_iterator<const int*, std::vector<int> >’ is not derived from ‘std::istreambuf_iterator<_CharT, std::char_traits<_CharT> >’
    53 | return std::find(observers_.begin(),observers_.end(),player) != observers_.end();
    | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    server/game.cpp: In member function ‘bool game::is_muted_observer(network::connection) const’:
    server/game.cpp:58:25: error: no matching function for call to ‘find(std::vector<int>::const_iterator, std::vector<int>::const_iterator, network::connection&)’
    58 | return std::find(muted_observers_.begin(), muted_observers_.end(), player) != muted_observers_.end();
    | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/c++/12/bits/streambuf_iterator.h:434:5: note: candidate: ‘template<class _CharT2> typename __gnu_cxx::__enable_if<std::__is_char<_CharT2>::__value, std::istreambuf_iterator<_CharT, std::char_traits<_CharT> > >::__type std::find(istreambuf_iterator<_CharT, char_traits<_CharT> >, istreambuf_iterator<_CharT, char_traits<_CharT> >, const _CharT2&)’
    434 | find(istreambuf_iterator<_CharT> __first,
    | ^~~~
    /usr/include/c++/12/bits/streambuf_iterator.h:434:5: note: template argument deduction/substitution failed:
    server/game.cpp:58:25: note: ‘__gnu_cxx::__normal_iterator<const int*, std::vector<int> >’ is not derived from ‘std::istreambuf_iterator<_CharT, std::char_traits<_CharT> >’
    58 | return std::find(muted_observers_.begin(), muted_observers_.end(), player) != muted_observers_.end();
    | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    server/game.cpp: In member function ‘bool game::is_player(network::connection) const’:
    server/game.cpp:63:25: error: no matching function for call to ‘find(std::vector<int>::const_iterator, std::vector<int>::const_iterator, network::connection&)’
    63 | return std::find(players_.begin(),players_.end(),player) != players_.end();
    | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/c++/12/bits/streambuf_iterator.h:434:5: note: candidate: ‘template<class _CharT2> typename __gnu_cxx::__enable_if<std::__is_char<_CharT2>::__value, std::istreambuf_iterator<_CharT, std::char_traits<_CharT> > >::__type std::find(istreambuf_iterator<_CharT, char_traits<_CharT> >, istreambuf_iterator<_CharT, char_traits<_CharT> >, const _CharT2&)’
    434 | find(istreambuf_iterator<_CharT> __first,
    | ^~~~
    /usr/include/c++/12/bits/streambuf_iterator.h:434:5: note: template argument deduction/substitution failed:
    server/game.cpp:63:25: note: ‘__gnu_cxx::__normal_iterator<const int*, std::vector<int> >’ is not derived from ‘std::istreambuf_iterator<_CharT, std::char_traits<_CharT> >’
    63 | return std::find(players_.begin(),players_.end(),player) != players_.end();
    | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    server/game.cpp: In member function ‘void game::add_player(network::connection, bool)’:
    server/game.cpp:652:21: error: no matching function for call to ‘find(std::vector<int>::iterator, std::vector<int>::iterator, network::connection&)’
    652 | if(std::find(users.begin(),users.end(),player) != users.end()) {
    | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/c++/12/bits/streambuf_iterator.h:434:5: note: candidate: ‘template<class _CharT2> typename __gnu_cxx::__enable_if<std::__is_char<_CharT2>::__value, std::istreambuf_iterator<_CharT, std::char_traits<_CharT> > >::__type std::find(istreambuf_iterator<_CharT, char_traits<_CharT> >, istreambuf_iterator<_CharT, char_traits<_CharT> >, const _CharT2&)’
    434 | find(istreambuf_iterator<_CharT> __first,
    | ^~~~
    /usr/include/c++/12/bits/streambuf_iterator.h:434:5: note: template argument deduction/substitution failed:
    server/game.cpp:652:21: note: ‘__gnu_cxx::__normal_iterator<int*, std::vector<int> >’ is not derived from ‘std::istreambuf_iterator<_CharT, std::char_traits<_CharT> >’
    652 | if(std::find(users.begin(),users.end(),player) != users.end()) {
    | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    server/game.cpp: In member function ‘void game::remove_player(network::connection, bool)’:
    server/game.cpp:704:61: error: no matching function for call to ‘find(std::vector<int>::iterator, std::vector<int>::iterator, network::connection&)’
    704 | const user_vector::iterator itor = std::find(players_.begin(),players_.end(),player);
    | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/c++/12/bits/streambuf_iterator.h:434:5: note: candidate: ‘template<class _CharT2> typename __gnu_cxx::__enable_if<std::__is_char<_CharT2>::__value, std::istreambuf_iterator<_CharT, std::char_traits<_CharT> > >::__type std::find(istreambuf_iterator<_CharT, char_traits<_CharT> >, istreambuf_iterator<_CharT, char_traits<_CharT> >, const _CharT2&)’
    434 | find(istreambuf_iterator<_CharT> __first,
    | ^~~~
    /usr/include/c++/12/bits/streambuf_iterator.h:434:5: note: template argument deduction/substitution failed:
    server/game.cpp:704:61: note: ‘__gnu_cxx::__normal_iterator<int*, std::vector<int> >’ is not derived from ‘std::istreambuf_iterator<_CharT, std::char_traits<_CharT> >’
    704 | const user_vector::iterator itor = std::find(players_.begin(),players_.end(),player);
    | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    server/game.cpp:711:61: error: no matching function for call to ‘find(std::vector<int>::iterator, std::vector<int>::iterator, network::connection&)’
    711 | const user_vector::iterator itor = std::find(observers_.begin(),observers_.end(),player);
    | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    /usr/include/c++/12/bits/streambuf_iterator.h:434:5: note: candidate: ‘template<class _CharT2> typename __gnu_cxx::__enable_if<std::__is_char<_CharT2>::__value, std::istreambuf_iterator<_CharT, std::char_traits<_CharT> > >::__type std::find(istreambuf_iterator<_CharT, char_traits<_CharT> >, istreambuf_iterator<_CharT, char_traits<_CharT> >, const _CharT2&)’
    434 | find(istreambuf_iterator<_CharT> __first,
    | ^~~~
    /usr/include/c++/12/bits/streambuf_iterator.h:434:5: note: template argument deduction/substitution failed:
    server/game.cpp:711:61: note: ‘__gnu_cxx::__normal_iterator<int*, std::vector<int> >’ is not derived from ‘std::istreambuf_iterator<_CharT, std::char_traits<_CharT> >’
    711 | const user_vector::iterator itor = std::find(observers_.begin(),observers_.end(),player);
    | ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    make[2]: *** [Makefile:1428: server/game.o] Error 1
    make[2]: Leaving directory '/home/pi/wesnoth-1.2.8/src'
    make[1]: *** [Makefile:536: all-recursive] Error 1
    make[1]: Leaving directory '/home/pi/wesnoth-1.2.8'
    make: *** [Makefile:442: all] Error 2

    ou un asciinema si tu préfère les couleurs : https://asciinema.org/a/534202.

    Si tu veux compiler toi-même, j'ai mis plus haut les commandes pour compiler et installer freetype2.
    Pour le reste, il faut faire ./autogen.sh && ./configure --build=<ça dépend du pc. moi ç'est aarch64-unknown-linux-gnu. si tu teste à vide, il te donne des pistes> --enable-campaign-server --enable-editor --enable-tools --enable-server --enable-dummy-locales && make

    L'informatique n'est pas une science exacte, on n'est jamais à l'abri d'un succès