Potrebuji zkompilovat jistou aplikaci vyuzivajici GTK+. Bohuzel vsak zdrojovy kod nebyl nejakou dobu aktualizovan a to zpusobilo, ze aplikace proti aktualnimu GTK+ zkompilovat nejde. Konkretne pouziva 'GtkOptionMenu', ktere je od GTK+ v2.4 obsolete a je nahrazeno 'GtkComboBox'.
Nekde jsem zahledl, ze by snad mely jit nejak zapnout obsolete funkce pomoci vhodneho #define, ale nemuzu k tomu nic najit.
Otazka tedy zni: Jde to nejak zkompilovat bez uprav a nebo musim aplikaci premigrovat na 'GtkComboBox'?
To bude nějaký omyl, protože celá řada 2.x je zdrojově i binárně kompatibilní, všechny třídy a funkce lze normálně používat v novejší verzích, i když jsou deprecated (celkem běžně to dělám). Tedy pokud program někde explicitně nezapíná
#define GTK_DISABLE_DEPRECATED
ale to už je pak jeho boj...
Takže zkus grepnout GTK_DISABLE_DEPRECATED (může být i v Makefilech).
Pouzij a prilinkuj gtk1.2, mela jsem podobny problem a na dotaz v gtk konferenci me rekli, ze rozdil mezi gtk1.2 a gtk2.4 je asi takovy jako mezi gtk a qt:) Melo by jit bez problemu na jednom systemu pouzivat obe knihovny. Vzhled gtk1.2 je sice trochu retro, ale minimalne do doby nez se to predela to muze bezet. Diky neustalym zmenam v API kdy jsem mela podobne problemy s gtk1.0 a gtk1.2 jsem presla od gtk k wxWindows.
Nešiř FUD.
Předně, pokud program někdo napsal tomto tisíciletí, bude nejspíš pod Gtk+ 2.x, a s Gtk+ 1.x ho neslinkuješ.
Dále, jaké změny v API? Jak už jsem napsal, celá řada 2.x je plně zpětně kompatibilní. Sice přibývají nové věci, ale staré se nemění, zejména ne jejich API.
Jednoduché Gtk+ 1.x programy navíc často fungují i s Gtk+ 2.x, protože žádný Gtk+ 1.x widget nebyl v Gtk+ 2.x odstraněn, byť tři skutečně rozbité teď vyžadují #define GTK_ENABLE_BROKEN při kompilaci.
A co s wxWindows? Když chceš cokoli netriválního (např. widget zobrazující text ;-) musíš stejně použít nativní widgety, takže to je z bláta do louže...