Cygwin


Cygwin je kompletnφ v²vojovΘ prost°edφ zalo╛enΘ na GNU programech pro prost°edφ MS Windows. Najdete v n∞m p°ekladaΦ jazyka C a C++, debugger, v∞t╣inu unixov²ch utilit a emulaΦnφ layer Posixu. GNU C a dal╣φ GNU v²vojovΘ nßstroje jsem popsal v prvnφm Φφsle tΘto rubriky (1/2000) a proto se nynφ zam∞°φm zejmΘna na speciality Cygwinu.

Asi nejd∙le╛it∞j╣φ je knihovna cygwin.dll, kterß zprost°edkovßvß emulaΦnφ layer. Ta za°φdφ, ╛e se aplikace cφtφ, jakoby b∞╛ela pod UNIXem. Cygwin dosahuje velice slu╣nΘ kompatibility se standardem Posix vΦetn∞ emulace UNIXovΘho filesystΘmu (mountovßnφ disk∙ atd.), UNIXov²ch proces∙, signßl∙ a dal╣φch vymo╛enostφ. Dφky tomu je Cygwin ideßlnφm prost°edφm pro p°enß╣enφ UNIXov²ch aplikacφ do prost°edφ MS Windows.

Od poslednφ beta verze v╣ak lze Cygwin dφky roz╣φ°enφ Mingw32 pou╛φt i pro psanφ nativnφch aplikacφ pro Windows. V balφku najdete free softwarovΘ p°episy v∞t╣iny hlaviΦkov²ch soubor∙ od standardnφch knihoven ve Windows a knihovny slou╛φcφ pro linkovßnφ programu se standardnφm API. Balφk obsahuje i p°ekladaΦ resource soubor∙ a tak Vßm nic nebrßnφ ve psanφ. Zatφm nenφ k dispozici ╛ßdnΘ vizußlnφ prost°edφ na "naklikßvßnφ program∙", ale lze pou╛φt n∞kterΘ voln∞ dostupnΘ resource buildery (jeden je nap°φklad k dispozici v balφku lcc-win32).

Cygwin jsem sßm odzkou╣el p°i portovßnφ mΘho programu XaoS a musφm °φci, ╛e vytvo°enφ Win32 aplikace byl men╣φ problΘm, ne╛ jsem p∙vodn∞ oΦekßval. ProblΘmy nastaly pouze u pou╛φvßnφ DirectX. Cygwin zatφm podporu pro DirectX neobsahuje, existujφ v╣ak balφky, kterΘ se o n∞j postarajφ. Proto╛e GCC ale nepodporuje COM, nenφ mo╛nΘ pou╛φt C++ API a je nutnΘ volat DirectX pomocφ sekundßrnφho API pro C. Podpora COM objekt∙ u╛ pro GCC existuje, stejn∞ jako implementace n∞kter²ch dal╣φch roz╣φ°enφ pou╛it²ch ve Win32 api (anonymnφch struktur apod.) tak╛e v p°φ╣tφch verzφch snad tyto potφ╛e odpadnou.

Cygwin dnes lze vyu╛φt pro tvorbu plnohodnotn²ch Win32 aplikacφ. Vynikß zejmΘna podporou poslednφch draft∙ C++ standardu (a GCC verze 3.0 u╛ bude obsahovat plnou podporu prvnφho oficißlnφho C++ standardu). Kvalita k≤du GCC 2.95.0 je srovnatelnß s Microsoft Visual C++.