Menu

FreeDoko mit gtkmm-2.4

testing
2005-09-27
2013-06-12
  • Hendrik Fehr

    Hendrik Fehr - 2005-09-27

    Hallo!
    Ich benutze gentoo linux und habe dort gtkmm-2.4 installiert. Mit den Hinweisen unter doc/de/LIESMICH.gtkmm-2.4 ist es mir gelungen das FreeDoko-0.7.0 bis zu diesem Fehler zu bersetzen:
    <pre>make[3]: Entering directory `/home/hefe/src/FreeDoko_0.7.0/src/ui/gtkmm'
    g++ -c icongroup.cpp
    icongroup.cpp: In member function `void UI_GTKMM_NS::Icongroup::draw_team(bool)
       ':
    icongroup.cpp:221: error: `is_null' undeclared (first use this function)
    icongroup.cpp:221: error: (Each undeclared identifier is reported only once for
       each function it appears in.)
    make[3]: *** [icongroup.o] Fehler 1</pre>

    es scheint die memberfunktion is_null() nichtmehr zu geben. ich habe icon.is_null() durch icon == NULL ersetzt. Jetzt bekomme ich beiM compilieren zwar eine Warnung ber NULL in arithmetischen ausdrcken, aber das Programm lsst sich ausfhren und spielen.

    Was ist die beste Lsung fr dieses Problem? Wird FreeDoko demnchst auf gtkmm-2.4 umsteigen?

    Viele gre und Danke fr so ein prima Spiel!

     
    • Dr. Diether Knof

      Die Memberfunktion 'Glib::RefPtr<>::is_null()' scheint mit der Version 2.4 herausgeflogen zu sein. Ersatz ist einfach, as '.is_null()' wegzulassen, also 'if (icon)'. Das werde ich dann zur nchsten Version beralle ersetzen.
      Umsteigen werden wir voraussichtich erst einmal nicht, es gibt noch Probleme mit gtkmm >= 2.4 unter MS-Windows. Auerdem werde wir in dem Zuge dann auch auf den g++ Version 4 umsteigen, der macht aber beim Kompilieren noch Macken (soll jetzt korrigiert sein).

       
    • Nobody/Anonymous

      Hallo,

      ich habe in 0.7.1 einen weiteren Compile-Error mit gtkmm-24 bekommen:
      menu.cpp: In member function ‘void UI_GTKMM_NS::Menu::set_signals()’:
      menu.cpp:524: error: call of overloaded ‘mem_fun(Gtk::FileSelection&, <unknown type>)’ is ambiguous

      Der Fehler taucht noch mehrmals auf. Was ist zu tun?

      Viele Grüße

       
      • Dr. Diether Knof

        Welche Version von libsigc++ ist denn installiert? Mit der 2.0er sollte es keine Probleme geben.
        Ansonsten erst einmal die zugehörigen Zeilen (523, 524, 525) auskommentieren ('//' an den Anfang der Zeilen setzen).

        Gruß
        Diether Knof

         
    • Nobody/Anonymous

      Es ist die Version 2.0 von sigc++. Der Fehler tritt mit gcc 4.0.2 und 4.1.0 auf. Das Auskommentieren hilft nicht, wie gesagt, der Fehler tritt mehrfach auf, immer wenn eine Funktion von Gtk::Window übergeben wird, nicht bei anderen Funktionen. Irgendwie wird der Funktionstyp nicht aufgelöst, als wäre es ein Scoping Problem. Irgendeine Idee?

      Viele Grüße

       
      • Dr. Diether Knof

        Jetzt habe ich das Problem gefunden:
        Ab Version 2.8 von gtkmm gibt es zwei Methoden Gtk::Window::present. An den entsprechenden Stellen kann das dan nicht mehr aufgelöst werde.
        Also: überall dort, wo der Compiler sich beschwert das 'mem_fun' auf 'mem_fun0' umändern.
        Mit der nächsten Version werden wir auch auf gtkmm 2.4 umsteigen.

        Gruß
        Diether

         

Log in to post a comment.