Hlavní navigace

Knihovna Clanlib (2)

Petr Kavánek 17. 5. 2004

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?

24. 5. 2004 10:21

lioil (neregistrovaný)

activity of forum 0%

sory hoshit

:(((





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…

Lupa.cz: Proč firmy málo chrání data? Chovají se logicky

Proč firmy málo chrání data? Chovají se logicky

Vitalia.cz: To není kašel! Správná diagnóza zachrání život

To není kašel! Správná diagnóza zachrání život

Vitalia.cz: Pečete cukroví a zbyl vám bílek?

Pečete cukroví a zbyl vám bílek?

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

Root.cz: Vypadl Google a rozbilo se toho hodně

Vypadl Google a rozbilo se toho hodně

Lupa.cz: Seznam mění vedení. Pavel Zima v čele končí

Seznam mění vedení. Pavel Zima v čele končí

Podnikatel.cz: Podnikatelům dorazí varování od BSA

Podnikatelům dorazí varování od BSA

Lupa.cz: Insolvenční řízení kvůli cookies? Vítejte v ČR

Insolvenční řízení kvůli cookies? Vítejte v ČR

Vitalia.cz: Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Láska na vozíku: Přitažliví jsme pro tzv. pečovatelky

Měšec.cz: Zdravotní a sociální pojištění 2017: Připlatíte

Zdravotní a sociální pojištění 2017: Připlatíte

Podnikatel.cz: 1. den EET? Problémy s pokladnami

1. den EET? Problémy s pokladnami

Lupa.cz: Teletext je „internetem hipsterů“

Teletext je „internetem hipsterů“

Lupa.cz: Co se dá měřit přes Internet věcí

Co se dá měřit přes Internet věcí

DigiZone.cz: ČT má dalšího zástupce v EBU

ČT má dalšího zástupce v EBU

DigiZone.cz: Flix TV má set-top box s HEVC

Flix TV má set-top box s HEVC

Lupa.cz: Google měl výpadek, nejel Gmail ani YouTube

Google měl výpadek, nejel Gmail ani YouTube

Vitalia.cz: Paštiky plné masa ho zatím neuživí

Paštiky plné masa ho zatím neuživí

Podnikatel.cz: Na poslední chvíli šokuje výjimkami v EET

Na poslední chvíli šokuje výjimkami v EET

120na80.cz: Boreliózu nelze žádným testem prokázat

Boreliózu nelze žádným testem prokázat

Měšec.cz: Jak vymáhat výživné zadarmo?

Jak vymáhat výživné zadarmo?