Hlavní navigace

Knihovna Clanlib (2)

Petr Kavánek

V prvním dílu věnovaném přímo knihovně ClanLib se podrobně podíváme na její instalaci pod Linuxem i pod Windows.

Instalace

Samotný ClanLib doporučuji stahovat přímo z CVS, kde se téměř každý den objevuje aktualizovaná verze. Zatím se jedná o verze 0.7.x, na spadnutí je verze 0.8.0. Každá nová verze samozřejmě obsahuje návody na instalace pro podporované platformy a stručný seznam novinek (anglicky).

Instalace na Linuxu

K tomu, abychom mohli ClanLib zkompilovat a používat, potřebujeme ještě některé další knihovny a programy. V souboru INSTALL.linux jsou uvedeny zlib, libjpg, libpng a pkgconfig. Tyto jsou volně dostupné a na domovské stránce na ně naleznete odkazy. Je však docela pravděpodobné, že jsou přímo součástí vaší distribuce. S jejich instalací by snad neměl být žádný problém. Typicky to znamená pouze sehnat si příslušný .tgz soubor, rozbalit a napsat (samozřejmě v příslušném místě, kam jste .tgz rozbalili):

./configure
make
make install

Rozhodně není na škodu číst soubory readme nebo jim podobné, které vám mohou pomoci, máte-li problém, nebo chcete-li se problémům vyhnout předem. Jediné, na co jsem narazil já, je to, že může záležet na pořadí, v němž tyto knihovny kompilujete tj. že jedna může vyžadovat druhou, naštěstí však ne navzájem :-). Toto pořadí si bohužel nevybavuji, ale metoda pokusu a omylu bude v tomto případě myslím docela rychlá.

Pokud nepoužíváte program pkg-config, budete jej muset také nainstalovat a nastavit. Tentokrát se nejedná o knihovnu podporující práci s grafikou, jako tomu je u zlib, libjpg a libpng. Pkg-config je šikovný program určený k získávání informací o knihovnách instalovaných v systému a ClanLib jej používá při vlastní kompilaci. Nám se však bude hodit i k jiným účelům, proto si ho trochu popišme.

Po úspěšné instalaci ClanLibu se ve vašem adresáři /usr/local/lib/pkgc­onfig/ budou nacházet soubory s příponou .pc jako například clanApp-0.7.pc, které obsahují informace o příslušných knihovnách (v našem příkladě o lclanApp resp. libclanApp-0.7.so.0). Z těchto informací pak, zjednodušeně řečeno, pkg-config dokáže generovat přesně takové parametry pro kompilátor, jaké budeme potřebovat například v našich makefilech. Ke konkrétním příkladům použití se ještě dostaneme v příštích dílech.

Pkg-config hledá soubory .pc v umístěních daných proměnnou PKG_CONFIG_PATH, a proto vám doporučuji do souboru ./bashrc ve vašem domovském adresáři přidat následující řádek:

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

Tím zajistíte, aby pkg-config automaticky prohledával /usr/local/lib/pkgc­onfig.

Nyní již nastala chvíle, kdy se můžeme pokusit zkompilovat samotný ClanLib. Postup by měl být stejný jako v předešlých případech. Přesto bych ale doporučil podívat se pozorně na hlášení, která dostanete provedením příkazu

./configure

Někde na konci by se totiž měl v ideálním případě objevit výpis podobný tomuto:

---------------------------------------------
The following modules will be built:

       clanGL = yes
       clanSDL = yes
       clanApp = yes
       clanGUI = yes
       clanCore = yes
       clanSound = yes
       clanNetwork = yes
       clanSignals = yes
       clanDisplay = yes
       clanMikmod = yes
       clanVorbis = yes

       Build Documentation = yes
       Debug Build = no
---------------------------------------------
Configure done.

Type 'make' to compile ClanLib.

Pokud je ve vašem výpisu u některého z modulů, například u clanSDL, napsáno místo yes slůvko no, znamená to, že configure po prohlídce vašeho systému a kontrole závislostí zjistil, že nebude možno příslušný modul zkompilovat. V takovém případě o tom bude někde výše ve výpisu nejspíš i nějaká konkrétnější zpráva.

V příkladu, který jsem uvedl, může být příčinou například to, že nemáte nainstalováno vše potřebné z knihovny SDL, což se dá samozřejmě napravit tím, že to doinstalujete podobně, jak již bylo popsáno u jiných knihoven. Možná vám stejně jako mně přijde divné, proč nebyla knihovna SDL uvedena v seznamu vyžadovaných knihoven jako třeba zlib. Důvod je nejspíš ten, že bez SDL vám bude většina ClanLibu fungovat, rozhodně ho zkompilujete a možná se ani nikdy nedostanete do situace, že by vám tato část scházela. Přesto doporučuji SDL nainstalovat, protože s ním vám budou některé operace běhat rychleji než bez něj. Alespoň podle toho, co se mi podařilo zjistit.

Pro funkčnost clanVorbis, což je modul užívaný k přehrávání hudebních souborů .ogg (formát podobných vlastností jako mp3), budete nejspíš potřebovat knihovny libogg a libogg-devel.

Jste-li již spokojeni s tím, jaká část modulů bude nainstalována, zbývá už pouze:

make
make install

Snad jediná nepříjemnost, která by vás ještě mohla potkat při instalaci, jsou chyby způsobené tím, že nemáte XFree86 verzi 4.3.0 nebo vyšší. Máte-li zastaralou verzi XFree86, budou se v chybových hláškách objevovat slova jako glXGetProcAddress nebo nějaká podobná.

Problémy mohou samozřejmě způsobovat i zastaralé grafické karty.

Pokud jsou chyby jiného rázu, zkontrolujte, zda jste nezapomněli na některý z výše uvedených kroků, případně zkuste stáhnout po novější nebo po starší verzi knihovny, případně zkuste hledat v diskusních fórech či v článcích a mailových archivech na www.clanlib.org.

Instalace na Windows

Jelikož mám osobní zkušenosti pouze s Visual Studiem 6.0, bude se následující popis vztahovat právě k tomuto vývojovému prostředí (u vyšších verzí a .net by neměly být rozdíly příliš velké, používáte-li překladače Borland, přečtěte si INSTALL.borland).

Podobně jako na Linuxu i na Windows potřebuje ClanLib ke svému fungování některé další knihovny. Zde máme trochu výhodu v tom, že si všechny můžeme stáhnout najednou z domovské stránky. Jsou zde označeny jako External Libraries. Stažený .zip soubor stačí prostě rozbalit na nějaké vhodné místo a zapamatovat si, kde to je, jelikož tyto cesty bude později nutné někde zadávat.

Vaše Visual Studio by mělo být ošetřeno service packem 5. To však ještě zdaleka není vše potřebné. Další nezbytně nutná věc je Microsoft Platform SDK. Na Platform SDK je velice nepříjemný fakt, že mají něco kolem 100 MB, což asi není pro spoustu lidí zrovna přijatelná velikost na stahování. Alternativním řešením, které by v takovém případě mohlo pomoci, je stáhnout si a nainstalovat pouze Debugging Tools, které jsou součástí Platform SDK. Jestli se nepletu, dají se stáhnout a nainstalovat samostatně a ClanLibu by to mohlo stačit. Nicméně k tomuto řešení bych se přikláněl, až pokud by opravdu nebylo jiného východiska.

Ani to nejspíš nebude stačit, jelikož budete potřebovat i DirectX SDK, které je také možné stáhnout ze stránekMicrosof­tu. Instalace by měla být zcela intuitivní a bezproblémová.

Nyní bychom měli mít vše portřebné k vlastní kompilaci knihovny. Nejprve ji tedy rozbalíme. Ve vzniklém adresáři najdeme soubor configure.dsw, který otevřeme ve Visual Studiu.

ClanLib potřebuje vědět, kde má hledat ony External Libraries. Příslušné cesty proto nastavíme ve Visual Studiu přes nabídky Tools → Options → Directories. Zde do Include Files listboxu vyplníme cestu k podadresáři include v našich rozbalených External Libraries. Podobně do Library Files listboxu vyplníme cestu k podadresáři lib. Tyto nové cesty zařadíme na první pozice v příslušných listboxech.

Nic nám již nebrání zkompilovat otevřený projekt configure.dsw a následně jej spustit. Jedná se o utilitu, která po vyplnění několika údajů vygeneruje work space pro kompilaci vlastní knihovny. Vyplnění údajů bude zahrnovat zadání cest k podadresářům lib a include našich External Libraries a cest, kam chceme nainstalovat vlastní hlavičkové soubory knihovny (include) a knihovny pro jednotlivé moduly (lib). Tyto cesty bude posléze nutné také zadat do Visual Studia jako v případě cest k externím knihovnám, aby bylo možné kompilovat vlastní aplikace využívající ClanLib.

Pokud se vše podařilo, měl by se v adresáři s ClanLibem objevit soubor ClanLib.dsw. Tento otevřeme. Měl by obsahovat několik projektů odpovídajících jednotlivým modulům knihovny. Můžeme je zkompilovat jeden po druhém, ale doporučuji kompilovat všechny najednou pomocí Batch Build. Vše je zde ve dvou verzích debug/release, což je velice výhodné. Při ladění bude Visual Studio používat debug verze (zakončené v názvu písmenem d) na rozdíl od kompilace finální release verze.

Varování můžete ignorovat. Pokud se při kompilaci (či linkování) objeví chyby, zkontrolujte, zda jste dobře zadali všechny cesty. Pokud chyby přetrvají, zkontrolujte, jestli jste na nic z výše uvedeného nezapomněli, zkuste si přečíst INSTALL.win32, případně FAQ na domovských stránkách knihovny. Osvědčeným zdrojem informací při hledání chyb v souvislosti s ClanLibem jsou i mailové archivy, k nimž se také doklikáte z domovské stránky ClanLibu.

Úspěšnost instalace si můžete ověřit samozřejmě tak, že zkompilujete a spustíte jeden z příkladů, které jsou dodávány přímo s knihovnou (adresář Examples jich obsahuje spoustu). V Linuxu stačí make a make install. Na Windows jsou zase všechny příklady ve work space examples.dsw.

Závěrem

Jelikož samotný popis instalace zabral spoustu řádků, rozhodl jsem se věnovat se vytvoření první aplikace až v příštím dílu, kde na to bude více prostoru.

Můžete se také těšit například i na popis, jak ClanLibovské programy psát pod Kdevelop, a snad i na další informace, které se vám, jak doufám, budou hodit.

Každopádně po úspěšné instalaci máte to nejtěžší za sebou.

Našli jste v článku chybu?
17. 5. 2004 10:41
JirkaS (neregistrovaný)

Navazuji na diskusi u predchoziho dilu. Procetl jsem si od te doby ruznou dokumentaci, konference a taky zdrojaky SDL. Vysledky meho usili: Samotna XFree86 verze 4.x podporuji hardwareovou 2D akceleraci (pomoci XAA), ale jeji vyuziti je omezene. Vztahuje se pouze na pixmapy a XCopyArea() a udajne funguje jen pokud se nedela zadne "klicovani", tzn. pro pravouhle objekty. Vzhledem k tomu se nikdy nikdo nepokousel do SDL doprogramovat podporu hardwareove 2D akcelerace pro X11 (win verze SDL akcel…