Portál AbcLinuxu, 30. dubna 2025 12:37
A zase budu OT, protože o oné zločinecké firmě nenapíšu ani řádku . Takhle jsem jenom pojmenoval svůj, už skoro rok, starý program - přesněji hru.
Učil jsem se programovací jazyk ruby a zároveň jsem musel udělat projekt do programování (třetí ročník na průmyslovce). Spojil jsem to dohromady a vznikla z toho BSA - Brutal space action.
Hra fungovala, jako projekt se učiteli líbila a já přestal mít na program čas. Asi by program úplně upadl v zapomnění, kdyby nepřišel další rok a další projekt - a co jiného dělat, než to vylepšit.
Nebyla to žádná sranda , po odevzdání jsem zdrojáky ještě dost překopával, protože některé části kodu byly dost WTF a neumožňovaly přidat nové featury, a nechal to v takovém nefunkčním stádiu. Teď jsem tři dny strávil tím, abych to dal aspoň trochu do kupy, opravil nejhorší bugy a rozchodil to.
A teď konečně, o co vlastně jde :). Je to vesmírná střílečka, zatím pro dva hráče (šipky, WSAD). Samozřejmě je cíl toho druhého sejmout. Nějaké různé herní mody, tabulka vítězů, nějaké nastavování (přes --help se ale lecos poladit dá) a další prkotiny to zatím neumí. Hra se pustí, pokud nespadne, tak se může pařit tak dlouho, dokud hra neomrzí. Ze screenshotu si asi každý udělá představu.
Hra je napsaná v ruby, byl to dost porod, protože dokumentace knihoven je žalostná (něco jsem musel jet translatorem z japonštiny, většinu jsem pochopil z examplů... anglicka doku fakt nic moc (vyjma ruby-sdl, tady všechna čest, nejhorší bylo asi rcairo). Hra používá cairo, rsvg, opengl a sdl. Ty naštěstí znám trošku z céčka, takže šlo spíše pochopit, jak se to používá v ruby.
Hra je trošku i technologický experiment - nepoužívá bitmapovou grafiku, ale SVG. Ta se renderuje za běhu do operační paměti. Je to napsané zatím dost bídně, budu na tom ještě pracovat (potřebuje to diskovou cache, atd...). Cairo se používá na kreslení přímo ve hře (třeba fonty).
No a pro vytvoření okna, braní eventů, atd... jsem použil SDL. A taky pro vykreslování. Jenže SDL není akcelerované a přišlo mi to zbytečně pomalé. Nechtěl jsem ale aby 2D hra byla závislá na OpenGL. Proto jsem si napsal mezivrstvu, která umí kreslit jak přes SDL, tak přes OGL. Hra funguje s obojím (./bsa-sdl nebo ./bsa-opengl). Pokud máte akceleraci, je opengl lepší - rychlejší.
Co se týče nároků, je to mizerné. Hra je opravdu šíleně nenažraná a má dost velké nároky na CPU. Při současných procesorech (AMD X2) to kolem (při OGL) 80 FPS při 1024x768 dá. Ale na své starší mašině (celeron 2.6 GHZ, 512 MB RAM) to už bylo jen třeba 20 FPS. V čem je problém? No jednak v tom, že spousta věcí je tam zprasených a bude chtit ještě vyladit. Ale taky má svůj díl viny ruby 1.8, který je (hlavně ve smyčkách) dost pomalé, až budou všechny knihovny dostupné pro 1.9, začnu portovat, měla by být rychlejší. Nenazřanost se snad bude lepšit, některé leaky se ovšem řeší těžko (stará verze rcaira - ta co je v ubuntu jaunty a v debianu lenny, neumí dealokovat objekt). No ale hrát se to dá .
Je to těžká ALPHA, zkoušejte jen verzi ze SVN, ta co je na sourceforge je rok stará. A moc neprocházejte kód (je strašný :D, nikdy jsem netvrdil, že umím programovat ;))), hlavně ty první části (kdy jsem fakt s ruby začínal) jsou dost zlé a budu se v tom ještě hodně vrtat. A taky, (zatím?) to nepoužívá vlákna - to uvidíte když jeden procák bude 100% a ostatní nic. To taky není ideální ;). UPDATE: Nakonec mi to nedalo, a přidal jsem samostatné vlákno pro výpočet kolizí. A nebylo to ani tak těžké
a poznat to jde parádně :) (obě jádra mají co dělat :D) Zakřikl jsem to ;). Ruby má pouze thready běžící v jednom vláknu :(, akorát jsem omylem pustil hru dvakrát, takže to procesory vytížilo... To jsem si moc nepomohl :'-(..
Slíbené svn: svn co https://bsa.svn.sourceforge.net/svnroot/bsa bsa
A teď ještě malé varování, ne ve všech distribucích používané knihovny jsou. V debianu lenny chybí dostatečně nová verze ruby-opengl, takže jede jen SDL. Gentoo je snad OK, v arch linuxu jsem musel kompilovat ruby-rsvg z balíčku (zdrojáků) ruby-gnome. V ubuntu je vše ok (aptitude install ruby libsdl-ruby librsvg2-ruby libcairo-ruby1.8 libopengl-ruby1.8), jinak nevím. V některých distribucích balíček RSVG byl, ale neuměl spolupracovat s cairem, i potom je nutná kompilace. Je vidět, že v ruby se moc hry a grafické app nepíšou ;).
Vím že v takovém stadiu zveřejňovat program je trochu závazek, ale třeba mě to s vývojem pošoupne, mám čas do února. Za každý bugreport předem díky (ale to neznamená, že je opravím :-P, ale zkusím to :D).
UPDATE:Vektorová grafika hry má výhodu v tom, že se dá zobrazení libovolně zoomovat. To se v hře provádí klávesama U a I.
UPDATE2:Pro Jardíka, je to GPL 3
Tiskni
Sdílej:
Pro Jardíka, je to GPL 3To je normální, GPL fašisti kradou a ubíraj svobodu. Např. dneska jsem čuměl do zdrojáků STL v gcc - v kýblu z nich jsou MIT(-like)/BSD(-like) copyrighty, a nad nima jak kráva valký GPL kopyright, který pak odebírá svobody. Ještě najít použitelnou náhradu za InfraRecorder a už tu nebudu mít žádný GPL shit.
v kýblu z nich jsou MIT(-like)/BSD(-like) copyrighty, a nad nima jak kráva valký GPL kopyright, který pak odebírá svobody.
./bsa-sdl ./graphic.rb:158:in `initialize': undefined method `render_rsvg_handle' for # Cairo::Context:0x7f6cadc84198 (NoMethodError) from ./menu.rb:233:in `new' from ./menu.rb:233:in `render' from ./menu.rb:36:in `initialize' from /home/multi/tmp/bsa/trunk/bsa.rb:148:in `new' from /home/multi/tmp/bsa/trunk/bsa.rb:148
cd ruby-gnome2-all-0.19.3/rsvg/ ruby extconf.rb make sudo make installSamozrejme ze ruby extconf.rb muze vypsat nejake chybejici zavislosti, pak nainstalovat pres balickovac patricne -dev zavislosti vypsanych baliku. Pripadne kdyby zavislost byla z balicku v adresari ruby-gnome2 (je to pack vice ruby knihoven), tak stejnym zpusobem zkompilovat. Bohuzel je to takove debilni (samozrejme je to zasirani systemu, pokud si nechces vyrabet vlastni balicek, ale tady to jen prepise soubory uz nainstalovaneho ruby-rsvg, takze odinstalovanim jeho se to snad vsechno smaze). Az ta hra bude trosku vice vymakana, tak se asi budu muset pustit i do vyrabeni nejakych repozitaru pro distribuce s balicky, jinak si to uzivatele nenajde. A to jsem to jeste nezkousel rozchazet ve windows ;).
ruby extconf.rb checking for GCC... yes checking for rb_define_alloc_func() in ruby.h... yes checking for rb_block_proc() in ruby.h... yes checking for new allocation framework... yes checking for attribute assignment... yes checking for librsvg-2.0... no [multi@KingTux ~/tmp/ruby-gnome2-all-0.19.3/rsvg]$ make make[1]: Entering directory `/home/multi/tmp/ruby-gnome2-all-0.19.3/rsvg/src' cc -I. -I/home/kou/work/ruby/ruby-gnome2.clean/glib/src -I/home/kou/work/ruby/ruby-gnome2.clean/glib/src -I. -I/usr/lib/ruby/1.8/x86_64-linux -I/home/kou/work/ruby/ruby-gnome2.clean/rsvg -DHAVE_RB_DEFINE_ALLOC_FUNC -DHAVE_RB_BLOCK_PROC -DHAVE_OBJECT_ALLOCATE -DHAVE_NODE_ATTRASGN -DHAVE_RSVG_SET_DEFAULT_DPI -DHAVE_RSVG_SET_DEFAULT_DPI_X_Y -DHAVE_RSVG_HANDLE_SET_DPI -DHAVE_RSVG_HANDLE_SET_DPI_X_Y -DHAVE_RSVG_HANDLE_GET_METADATA -DHAVE_RSVG_HANDLE_FREE -DHAVE_RSVG_HANDLE_GET_PIXBUF_SUB -DHAVE_TYPE_RSVGDIMENSIONDATA -DHAVE_RB_CAIRO_H -DHAVE_LIBRSVG_RSVG_CAIRO_H -DHAVE_LIBRSVG_LIBRSVG_ENUM_TYPES_H -DRUBY_RSVG2_COMPILATION -fPIC -fno-strict-aliasing -g -g -O2 -fPIC -Wall -D_REENTRANT -I/usr/include/librsvg-2 -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/gtk-2.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libpng12 -D_REENTRANT -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/freetype2 -I/usr/include/directfb -I/usr/include/libpng12 -c rbrsvg.c rbrsvg.c:16:20: error: rbglib.h: není souborem ani adresářem rbrsvg.c:17:23: error: rbgobject.h: není souborem ani adresářem rbrsvg.c:22:28: error: librsvg/rsvg.h: není souborem ani adresářem rbrsvg.c:26:24: error: rb_cairo.h: není souborem ani adresářem rbrsvg.c:27:34: error: librsvg/rsvg-cairo.h: není souborem ani adresářem rbrsvg.c:31:42: error: librsvg/librsvg-enum-types.h: není souborem ani adresářem rbrsvg.c:36:38: error: librsvg/librsvg-features.h: není souborem ani adresářem rbrsvg.c:63: error: expected ‘)’ before ‘*’ token rbrsvg.c:91: error: expected ‘)’ before ‘*’ token rbrsvg.c: In function ‘rb_rsvg_dim_alloc’: rbrsvg.c:101: error: ‘RsvgDimensionData’ undeclared (first use in this function) rbrsvg.c:101: error: (Each undeclared identifier is reported only once rbrsvg.c:101: error: for each function it appears in.) rbrsvg.c:101: error: ‘dimp’ undeclared (first use in this function) rbrsvg.c:102: error: expected expression before ‘)’ token rbrsvg.c: In function ‘rb_rsvg_dim_initialize’: rbrsvg.c:110: error: ‘RsvgDimensionData’ undeclared (first use in this function) rbrsvg.c:110: error: ‘dimp’ undeclared (first use in this function) rbrsvg.c:112: error: expected expression before ‘)’ token rbrsvg.c: In function ‘rb_rsvg_dim_get_width’: rbrsvg.c:130: error: ‘RsvgDimensionData’ undeclared (first use in this function) rbrsvg.c:130: error: expected expression before ‘)’ token rbrsvg.c: In function ‘rb_rsvg_dim_set_width’: rbrsvg.c:136: error: ‘RsvgDimensionData’ undeclared (first use in this function) rbrsvg.c:136: error: expected expression before ‘)’ token rbrsvg.c: In function ‘rb_rsvg_dim_get_height’: rbrsvg.c:143: error: ‘RsvgDimensionData’ undeclared (first use in this function) rbrsvg.c:143: error: expected expression before ‘)’ token rbrsvg.c: In function ‘rb_rsvg_dim_set_height’: rbrsvg.c:149: error: ‘RsvgDimensionData’ undeclared (first use in this function) rbrsvg.c:149: error: expected expression before ‘)’ token rbrsvg.c: In function ‘rb_rsvg_dim_get_em’: rbrsvg.c:156: error: ‘RsvgDimensionData’ undeclared (first use in this function) rbrsvg.c:156: error: expected expression before ‘)’ token rbrsvg.c: In function ‘rb_rsvg_dim_set_em’: rbrsvg.c:162: error: ‘RsvgDimensionData’ undeclared (first use in this function) rbrsvg.c:162: error: expected expression before ‘)’ token rbrsvg.c: In function ‘rb_rsvg_dim_get_ex’: rbrsvg.c:169: error: ‘RsvgDimensionData’ undeclared (first use in this function) rbrsvg.c:169: error: expected expression before ‘)’ token rbrsvg.c: In function ‘rb_rsvg_dim_set_ex’: rbrsvg.c:175: error: ‘RsvgDimensionData’ undeclared (first use in this function) rbrsvg.c:175: error: expected expression before ‘)’ token rbrsvg.c: In function ‘rb_rsvg_set_default_dpi’: rbrsvg.c:222: warning: implicit declaration of function ‘rsvg_set_default_dpi’ rbrsvg.c: In function ‘rb_rsvg_set_default_dpi_x_y’: rbrsvg.c:233: warning: implicit declaration of function ‘rsvg_set_default_dpi_x_y’ rbrsvg.c: In function ‘rb_rsvg_handle_set_dpi’: rbrsvg.c:244: warning: implicit declaration of function ‘rsvg_handle_set_dpi’ rbrsvg.c:244: error: ‘RsvgHandle’ undeclared (first use in this function) rbrsvg.c:244: error: expected expression before ‘)’ token rbrsvg.c: In function ‘rb_rsvg_handle_set_dpi_x_y’: rbrsvg.c:255: warning: implicit declaration of function ‘rsvg_handle_set_dpi_x_y’ rbrsvg.c:255: error: ‘RsvgHandle’ undeclared (first use in this function) rbrsvg.c:255: error: expected expression before ‘)’ token rbrsvg.c: At top level: rbrsvg.c:264: error: expected ‘)’ before ‘*’ token rbrsvg.c: In function ‘rb_rsvg_handle_alloc’: rbrsvg.c:274: error: ‘rb_rsvg_handle_free’ undeclared (first use in this function) rbrsvg.c: In function ‘rb_rsvg_handle_initialize’: rbrsvg.c:313: error: ‘RsvgHandle’ undeclared (first use in this function) rbrsvg.c:313: error: ‘handle’ undeclared (first use in this function) rbrsvg.c:320: warning: implicit declaration of function ‘RVAL2CBOOL’ rbrsvg.c:325: warning: implicit declaration of function ‘rsvg_handle_new’ rbrsvg.c: In function ‘rb_rsvg_handle_set_size_callback’: rbrsvg.c:346: warning: implicit declaration of function ‘rsvg_handle_set_size_callback’ rbrsvg.c:346: error: ‘RsvgHandle’ undeclared (first use in this function) rbrsvg.c:346: error: expected expression before ‘)’ token rbrsvg.c:346: error: ‘exec_callback’ undeclared (first use in this function) rbrsvg.c:347: error: ‘gpointer’ undeclared (first use in this function) rbrsvg.c: In function ‘rb_rsvg_handle_write’: rbrsvg.c:354: error: ‘gboolean’ undeclared (first use in this function) rbrsvg.c:354: error: expected ‘;’ before ‘result’ rbrsvg.c:355: error: ‘GError’ undeclared (first use in this function) rbrsvg.c:355: error: ‘error’ undeclared (first use in this function) rbrsvg.c:357: error: ‘result’ undeclared (first use in this function) rbrsvg.c:357: warning: implicit declaration of function ‘rsvg_handle_write’ rbrsvg.c:357: error: ‘RsvgHandle’ undeclared (first use in this function) rbrsvg.c:357: error: expected expression before ‘)’ token rbrsvg.c:357: warning: implicit declaration of function ‘RVAL2CSTR’ rbrsvg.c:357: warning: type defaults to ‘int’ in declaration of ‘type name’ rbrsvg.c:360: warning: implicit declaration of function ‘RAISE_GERROR’ rbrsvg.c:362: warning: implicit declaration of function ‘CBOOL2RVAL’ rbrsvg.c: In function ‘rb_rsvg_handle_close’: rbrsvg.c:368: error: ‘gboolean’ undeclared (first use in this function) rbrsvg.c:368: error: expected ‘;’ before ‘result’ rbrsvg.c:369: error: ‘GError’ undeclared (first use in this function) rbrsvg.c:369: error: ‘error’ undeclared (first use in this function) rbrsvg.c:375: error: ‘result’ undeclared (first use in this function) rbrsvg.c:375: warning: implicit declaration of function ‘rsvg_handle_close’ rbrsvg.c:375: error: ‘RsvgHandle’ undeclared (first use in this function) rbrsvg.c:375: error: expected expression before ‘)’ token rbrsvg.c: In function ‘rb_rsvg_handle_get_pixbuf’: rbrsvg.c:397: error: ‘GdkPixbuf’ undeclared (first use in this function) rbrsvg.c:397: error: ‘pixbuf’ undeclared (first use in this function) rbrsvg.c:401: warning: implicit declaration of function ‘rsvg_handle_get_pixbuf’ rbrsvg.c:401: error: ‘RsvgHandle’ undeclared (first use in this function) rbrsvg.c:401: error: expected expression before ‘)’ token rbrsvg.c:404: warning: implicit declaration of function ‘rsvg_handle_get_pixbuf_sub’ rbrsvg.c:404: error: expected expression before ‘)’ token rbrsvg.c:405: warning: cast to pointer from integer of different size rbrsvg.c:412: warning: implicit declaration of function ‘GOBJ2RVAL’ rbrsvg.c:414: warning: implicit declaration of function ‘g_object_unref’ rbrsvg.c: In function ‘rb_rsvg_pixbuf_from_file’: rbrsvg.c:438: error: ‘GdkPixbuf’ undeclared (first use in this function) rbrsvg.c:438: error: ‘pixbuf’ undeclared (first use in this function) rbrsvg.c:439: error: ‘GError’ undeclared (first use in this function) rbrsvg.c:439: error: ‘error’ undeclared (first use in this function) rbrsvg.c:441: warning: implicit declaration of function ‘rsvg_pixbuf_from_file’ rbrsvg.c: In function ‘rb_rsvg_pixbuf_from_file_at_zoom’: rbrsvg.c:455: error: ‘GdkPixbuf’ undeclared (first use in this function) rbrsvg.c:455: error: ‘pixbuf’ undeclared (first use in this function) rbrsvg.c:456: error: ‘GError’ undeclared (first use in this function) rbrsvg.c:456: error: ‘error’ undeclared (first use in this function) rbrsvg.c:458: warning: implicit declaration of function ‘rsvg_pixbuf_from_file_at_zoom’ rbrsvg.c: In function ‘rb_rsvg_pixbuf_from_file_at_size’: rbrsvg.c:475: error: ‘GdkPixbuf’ undeclared (first use in this function) rbrsvg.c:475: error: ‘pixbuf’ undeclared (first use in this function) rbrsvg.c:476: error: ‘GError’ undeclared (first use in this function) rbrsvg.c:476: error: ‘error’ undeclared (first use in this function) rbrsvg.c:478: warning: implicit declaration of function ‘rsvg_pixbuf_from_file_at_size’ rbrsvg.c: In function ‘rb_rsvg_pixbuf_from_file_at_max_size’: rbrsvg.c:495: error: ‘GdkPixbuf’ undeclared (first use in this function) rbrsvg.c:495: error: ‘pixbuf’ undeclared (first use in this function) rbrsvg.c:496: error: ‘GError’ undeclared (first use in this function) rbrsvg.c:496: error: ‘error’ undeclared (first use in this function) rbrsvg.c:498: warning: implicit declaration of function ‘rsvg_pixbuf_from_file_at_max_size’ rbrsvg.c: In function ‘rb_rsvg_pixbuf_from_file_at_zoom_with_max’: rbrsvg.c:519: error: ‘GdkPixbuf’ undeclared (first use in this function) rbrsvg.c:519: error: ‘pixbuf’ undeclared (first use in this function) rbrsvg.c:520: error: ‘GError’ undeclared (first use in this function) rbrsvg.c:520: error: ‘error’ undeclared (first use in this function) rbrsvg.c:522: warning: implicit declaration of function ‘rsvg_pixbuf_from_file_at_zoom_with_max’ rbrsvg.c: In function ‘rb_rsvg_handle_get_dim’: rbrsvg.c:540: error: ‘RsvgDimensionData’ undeclared (first use in this function) rbrsvg.c:540: error: expected ‘;’ before ‘dim’ rbrsvg.c:543: warning: implicit declaration of function ‘rsvg_handle_get_dimensions’ rbrsvg.c:543: error: ‘RsvgHandle’ undeclared (first use in this function) rbrsvg.c:543: error: expected expression before ‘)’ token rbrsvg.c:543: error: ‘dim’ undeclared (first use in this function) rbrsvg.c: In function ‘rb_rsvg_handle_get_title’: rbrsvg.c:557: warning: implicit declaration of function ‘CSTR2RVAL’ rbrsvg.c:557: warning: implicit declaration of function ‘rsvg_handle_get_title’ rbrsvg.c:557: error: ‘RsvgHandle’ undeclared (first use in this function) rbrsvg.c:557: error: expected expression before ‘)’ token rbrsvg.c: In function ‘rb_rsvg_handle_get_desc’: rbrsvg.c:563: warning: implicit declaration of function ‘rsvg_handle_get_desc’ rbrsvg.c:563: error: ‘RsvgHandle’ undeclared (first use in this function) rbrsvg.c:563: error: expected expression before ‘)’ token rbrsvg.c: In function ‘rb_rsvg_handle_get_metadata’: rbrsvg.c:570: warning: implicit declaration of function ‘rsvg_handle_get_metadata’ rbrsvg.c:570: error: ‘RsvgHandle’ undeclared (first use in this function) rbrsvg.c:570: error: expected expression before ‘)’ token rbrsvg.c: In function ‘rb_rsvg_pixbuf_from_file_at_size_ex’: rbrsvg.c:582: error: ‘GdkPixbuf’ undeclared (first use in this function) rbrsvg.c:582: error: ‘pixbuf’ undeclared (first use in this function) rbrsvg.c:583: error: ‘GError’ undeclared (first use in this function) rbrsvg.c:583: error: ‘error’ undeclared (first use in this function) rbrsvg.c:585: warning: implicit declaration of function ‘rsvg_pixbuf_from_file_at_size_ex’ rbrsvg.c:585: error: ‘RsvgHandle’ undeclared (first use in this function) rbrsvg.c:585: error: expected expression before ‘)’ token rbrsvg.c: In function ‘rb_rsvg_pixbuf_from_file_ex’: rbrsvg.c:602: error: ‘GdkPixbuf’ undeclared (first use in this function) rbrsvg.c:602: error: ‘pixbuf’ undeclared (first use in this function) rbrsvg.c:603: error: ‘GError’ undeclared (first use in this function) rbrsvg.c:603: error: ‘error’ undeclared (first use in this function) rbrsvg.c:605: warning: implicit declaration of function ‘rsvg_pixbuf_from_file_ex’ rbrsvg.c:605: error: ‘RsvgHandle’ undeclared (first use in this function) rbrsvg.c:605: error: expected expression before ‘)’ token rbrsvg.c: In function ‘rb_rsvg_pixbuf_from_file_at_zoom_ex’: rbrsvg.c:621: error: ‘GdkPixbuf’ undeclared (first use in this function) rbrsvg.c:621: error: ‘pixbuf’ undeclared (first use in this function) rbrsvg.c:622: error: ‘GError’ undeclared (first use in this function) rbrsvg.c:622: error: ‘error’ undeclared (first use in this function) rbrsvg.c:624: warning: implicit declaration of function ‘rsvg_pixbuf_from_file_at_zoom_ex’ rbrsvg.c:624: error: ‘RsvgHandle’ undeclared (first use in this function) rbrsvg.c:624: error: expected expression before ‘)’ token rbrsvg.c: In function ‘rb_rsvg_pixbuf_from_file_at_max_size_ex’: rbrsvg.c:642: error: ‘GdkPixbuf’ undeclared (first use in this function) rbrsvg.c:642: error: ‘pixbuf’ undeclared (first use in this function) rbrsvg.c:643: error: ‘GError’ undeclared (first use in this function) rbrsvg.c:643: error: ‘error’ undeclared (first use in this function) rbrsvg.c:645: warning: implicit declaration of function ‘rsvg_pixbuf_from_file_at_max_size_ex’ rbrsvg.c:645: error: ‘RsvgHandle’ undeclared (first use in this function) rbrsvg.c:645: error: expected expression before ‘)’ token rbrsvg.c: In function ‘rb_rsvg_pixbuf_from_file_at_zoom_with_max_ex’: rbrsvg.c:667: error: ‘GdkPixbuf’ undeclared (first use in this function) rbrsvg.c:667: error: ‘pixbuf’ undeclared (first use in this function) rbrsvg.c:668: error: ‘GError’ undeclared (first use in this function) rbrsvg.c:668: error: ‘error’ undeclared (first use in this function) rbrsvg.c:670: warning: implicit declaration of function ‘rsvg_pixbuf_from_file_at_zoom_with_max_ex’ rbrsvg.c:670: error: ‘RsvgHandle’ undeclared (first use in this function) rbrsvg.c:670: error: expected expression before ‘)’ token rbrsvg.c: In function ‘rb_rsvg_handle_render_cairo’: rbrsvg.c:704: warning: implicit declaration of function ‘rsvg_handle_render_cairo’ rbrsvg.c:704: error: ‘RsvgHandle’ undeclared (first use in this function) rbrsvg.c:704: error: expected expression before ‘)’ token rbrsvg.c:704: warning: implicit declaration of function ‘RVAL2CRCONTEXT’ rbrsvg.c:706: warning: implicit declaration of function ‘rsvg_handle_render_cairo_sub’ rbrsvg.c:706: error: expected expression before ‘)’ token rbrsvg.c:707: warning: cast to pointer from integer of different size rbrsvg.c: In function ‘Init_rsvg2’: rbrsvg.c:731: warning: implicit declaration of function ‘G_DEF_ERROR’ rbrsvg.c:731: error: ‘RSVG_ERROR’ undeclared (first use in this function) rbrsvg.c:731: error: ‘RSVG_TYPE_ERROR’ undeclared (first use in this function) rbrsvg.c:740: error: ‘RBGLIB_MAJOR_VERSION’ undeclared (first use in this function) rbrsvg.c:741: error: ‘RBGLIB_MINOR_VERSION’ undeclared (first use in this function) rbrsvg.c:742: error: ‘RBGLIB_MICRO_VERSION’ undeclared (first use in this function) rbrsvg.c:746: error: ‘LIBRSVG_MAJOR_VERSION’ undeclared (first use in this function) rbrsvg.c:747: error: ‘LIBRSVG_MINOR_VERSION’ undeclared (first use in this function) rbrsvg.c:748: error: ‘LIBRSVG_MICRO_VERSION’ undeclared (first use in this function) rbrsvg.c:775: warning: implicit declaration of function ‘G_DEF_SETTERS’ make[1]: *** [rbrsvg.o] Error 1 make[1]: Leaving directory `/home/multi/tmp/ruby-gnome2-all-0.19.3/rsvg/src' make: *** [all] Error 2
checking for librsvg-2.0... noCož znamená, že musíš nainstalovat librsvg a taky librsvg-dev. Určitě budeš mít v repozitáři (pohledej jen rsvg, třeba se to bude jmenovat trošku jinak). Tipoval bych, že librsvg máš, ale development verzi (s hlavičkovými soubory) ne, proto to nejde přeložit. Pak dáš znova extconf a buď skončí dobře (žádne no na konci nebude) a nebo bude problém v jiné knihovně. Ono u toho librsvg jich je potřeba jen pár, kompilace se pak provede hodně rychle, neboj :).
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.