Jak kompilovat linuxové programy pro Windows pomocí Cygwin. Instalace Cygwin

Jednoduché a v podstatě dobré pro každého. Jen verze Gitu není nejnovější, alespoň prozatím. Na každodenní práci s Gitem to ale docela stačí. Když se podíváme na verzi, uvidíme:

$git --verze
git verze 1.9.5.msysgit.0

Pokud ale najednou potřebujete něco novějšího, můžete si nainstalovat Git z balíčků Cygwin. K tomu je samozřejmě potřeba nainstalovat samotný Cygwin. Na tom není nic složitého. Pojďme sem a stáhněte si instalační program. Tohle je přesně instalátor, A není distribuce. Protože stahuje všechny balíčky ze sítě. A kromě toho se musí používat k aktualizaci nainstalovaných balíčků nebo k instalaci nových.

A tak stahujeme

A spusťte instalační program

Udělej jeden, dva, tři

V každém případě, pokud budete něco později potřebovat, můžete si to stáhnout a nainstalovat. Jak můžete vidět, verze Git v tomto balíčku je 2.1.4, což je jasně novější než 1.9.5. Ačkoli 2.3.1 je již k dispozici pro Linux a Mac OS X.

Pro jistotu vám dám několik dalších rychlých serverů ke stažení

Tohle je prostě pohádka

To je vše

Spustíme a vidíme, že při prvním spuštění je nám řečeno, kde jsou umístěny konfigurační soubory:

Obrázek vpravo ukazuje, kde se nachází domovský adresář uživatele. Toto je instalační složka (v mém případě C:\cigwin64), pak složku domov, pak složka uživatelské jméno a již obsahuje konfigurační soubory .bashrc, .bash_profile, .inputrc A .profil.

Veškerá konfigurace terminálu se provádí v těchto souborech. Nebudu to zde popisovat, protože se jedná o velké samostatné téma.

Dovolte mi jen poznamenat, že hlavní nastavení bash se provádí v souboru .bash_profile.

Můžete také poznamenat, že soubor nastavení Git – .gitconfig – bude také umístěn v domovském adresáři

Vzhled terminálu si navíc můžete přizpůsobit kliknutím na ikonu terminálu v levém horním rohu a výběrem Možnosti.

Pokud potřebujete nějaké další balíčky pro Cygwin, můžete je vyhledat.

Po všech nastaveních vypadá moje okno terminálu Cygwin takto. A pak uvidíme verzi nainstalovaného Gitu.

Tak a máme tu plnohodnotný Git. Nyní si (rychle) ověříme jeho fungování na reálném úložišti.

Všechno funguje.

P.S. Ještě jednou stojí za zmínku, že globální a systémová (globální, systémová) nastavení msysGit a Git nainstalovaných z Cygwin jsou uložena na různých místech a navzájem se neruší ani nepřekrývají, podle mého názoru je to pohodlné, protože vše, co Windows nástroje se snaží zapsat svá nastavení do souboru globálních nastavení.gitconfig, což může někdy způsobit nepříjemnosti a zmatky.

Vývoj multiplatformních aplikací není snadný. Obtížné je to zejména díky Windows, ve kterých není vše jako u lidí. Tady nemáte ani normální terminál, ani normální konzolové utility, vůbec nic! Když jsem se znovu potýkal s tímto problémem, rozhodl jsem se znovu vyzkoušet Cygwin. A hádejte co, ukázalo se, že to ve skutečnosti dělá z Windows něco, co můžete téměř používat!

Instalační program Cygwin si můžete stáhnout zde. Ve skutečnosti se nejedná ani tak o instalátor, jako spíše o správce balíčků, který se po spuštění přímo zeptá, které balíčky byste chtěli nainstalovat. Chlapi! Správce balíčků! Pod Windows! Instalační program vytvoří mezipaměť v adresáři, ze kterého bude spuštěn. Proto je lepší si před spuštěním vytvořit na ploše nějakou speciální složku a dát do ní instalátor.

Jaké balíčky je podle mého názoru potřeba nainstalovat:

  • openssh- masthev;
  • inetutils, bind-utils, ping, nc A nc6- masthev;
  • wget, kučera- masthev;
  • krajta a/nebo python3— Myslím, že je to nutnost;
  • vim, gvim— pro úpravu malých souborů to nebude zbytečné;
  • diffutils, pwgen, rozepnout, rzync- ať jsou jen pro případ;
  • gcc a/nebo zvonit, cmake, gdb- v případě potřeby;
  • obrazovka, tmux, mc- pro amatéry;
  • git- pod velmi velký otázka, viz níže;

Věnovat pozornost! Chcete-li nainstalovat pip do Cygwin, zaškrtněte políčko vedle balíčku python-setuptools a/nebo python3-setuptools. Po instalaci v terminálu řekněte:

easy_install-2,7 pip

easy_install-3,4 pip

..., podle toho, jakou verzi nebo verze Pythonu jste nainstalovali.

Takže po instalaci Cygwinu můžete otevřít terminál:

Chlapi! Normální terminál, který mění velikost, umožňuje kopírovat a vkládat text, a to je vše! Pod Windows! Se všemi známými a známými příkazy id, ls, pwd, cat, ssh, scp a dalšími. S lidským prostředím - .bashrc, ~/.ssh/config a tak dále. Navíc, na rozdíl od ostudného hacku zvaného PowerShell, Cygwin netáhne s .NET Framework. Můžeme dokonce otevřít více terminálů a přepínat mezi nimi pomocí zkratky Ctr + Tab. Je to skoro jako karty! Samozřejmě funguje i starý dobrý Alt + Tab.

Výše jsem nedoporučoval instalovat Git a zde je důvod. Faktem je, že v Cygwinu se znatelně zpomaluje. Doporučuje se spouštět příkazy:

git config --global core.preloadindex true
git config --global core.fscache true
git config --global gc.auto 256

Ale to bohužel neřeší problém úplně. Takže na velkém projektu může být příkaz git status proveden za 20 sekund V Linuxu na stejném úložišti běží příkaz okamžitě.

Tento článek bude užitečný pro začínající uživatele Cygwin. Začněme tím, že si nejprve musíme odpovědět na jednoduchou otázku. Co je Cygwin? Cygwin je prostředí podobné UNIXu a rozhraní příkazového řádku pro Microsoft Windows. Microsoft Windows již podobné rozhraní cmd má. Příkazový řádek můžete otevřít pomocí kombinace kláves Win+R. Uživatelé však často musí většinu práce se systémem Windows provádět ručně. Na druhé straně Linuxu uživatel už dlouho napsal bash skript a popíjí pivo na okraji automatizovaného pracovního postupu.

Co vám tedy brání v tom udělat ve Windows? Přesně tak, absolutně nic neruší. To však vyžaduje další programy a knihovny. Cygwin rozšiřuje možnosti standardního příkazového řádku Windows a umožňuje vám automatizovat některé procesy a vyvíjet programy pro Linux a další systémy.

Program Cygwin lze stáhnout z oficiálních stránek: Odkaz na 32bitovou verzi programu a Odkaz na 64bitovou verzi programu.

Vyberte požadovanou verzi, stáhněte a spusťte spustitelný soubor setup-x86.exe a setup-x86_64.exe.

Instalační okno pro 64bitovou verzi programu


Okno pro výběr způsobu instalace


Okno pro výběr balíčku

Instalační okno pro 32bitovou verzi programu vypadá úplně stejně jako 64bitová verze. Dalším krokem je výběrové okno. Kde nainstalovat nebo stáhnout program. Celkem jsou tři možnosti. První možností je Instalovat z Internetu (stažené soubory budou uchovány pro budoucí opětovné použití) instalace z Internetu a stažené soubory budou uloženy do dalšího opětovného použití. Druhou možností je Stáhnout bez instalace. Třetí možností je Instalovat z místního adresáře. Protože Nemáme místní kopii a musíme ji nainstalovat, takže vybereme první možnost. V dalším okně bude výběr instalační cesty. Doporučuji zvolit systémovou jednotku, například moje instalační cesta Cygwin je C:\cygwin64. V dalším okně je třeba vybrat cestu, kam se budou ukládat dočasné soubory, které se stáhnou během procesu instalace. Pro mě je to C:\cygwin64\package. Poté si musíte vybrat, zda chcete stahovat přes proxy nebo přímo. Dalším krokem je vybrat úložiště pro stahování, vybrat jakékoli, na které narazíte, nebo výchozí a kliknout na tlačítko Další. Po kliknutí na tlačítko začne proces stahování hlavních konfigurací. Dále si můžete vybrat, co chcete nainstalovat. Chcete-li vybrat balíček, klikněte na Přeskočit vedle názvu balíčku. Seznam balíčků, které se vám budou hodit:

  • gcc-core (pod Devel)
  • gcc-g++ (v sekci Devel)
  • vyrobit (v sekci Devel)
  • cmake (v sekci Devel)
  • automobilka (v sekci Devel)
  • wget (v sekci Web)
  • libiconv (v sekcích Devel a Libs)
  • openssh (v sekci Net)
  • nano (v sekci Redakce)
  • bash (ze sekce Base)
  • base-cygwin (ze sekce Base)
  • základní soubory (ze sekce Base)
  • cygwin (ze sekce Base)
  • soubor (ze sekce Base)
  • gzip (ze sekce Base)
  • přihlášení (ze sekce Base)
  • mátová (ze sekce Base)
  • openssl (ze sekce Base)
  • běh (ze sekce Base)
  • dehet (ze sekce Base)
  • vim-minimal (ze sekce Base)
  • cron (ze sekce Správce)
  • vypnutí (ze sekce Admin)
  • git (všechny balíčky ze sekce Devel)

Nelíbila se mi barva pozadí ani vestavěné písmo a barva textu, tak jsem si to upravil. Těmito slovy ukončím tento článek.

Tento článek je určen pro dva
typy lidí: pro ty, kteří nerozumí
Linux, ale nemohu jej nainstalovat do počítače
(existují různé důvody), nebo pro ty, kteří
ví něco o tučňákech 🙂 a nevadilo by mi to
poznat je na "neutrálu"
území, tedy na Win98/NT.

Stránka již označila Cygwin za nejlepší
vyjměte emulátor Linuxu, ale nebylo řečeno
nic o instalaci, konfiguraci a chybách Cygwinu.
Tady vám o tom povím :) Vlastně kdyby
když se nad tím zamyslím, Cygwin vůbec není emulátor, ale
jen distribuce Linuxu napsaná pro Win32 😉

Přestaň blbnout... Pojďme na http://www.cygwin.com,
Odtud převezmeme instalační program setup.exe. K ní
vytáhneme již předkompilované
binárky (v příponě exe), pamatuješ si rpm?
😉 z webu vývojáře nebo ze zrcadla.
DOPORUČUJI tento program pouze ke stažení
Tyto soubory nainstalujeme ručně, protože Li
instalujete pomocí setup.exe, gcc nefunguje - obr
ví proč... Možná už vývojáři počítali
je to chyba, ale zatím o ní nevím...

Takže si stáhněte všechny hlavní binární soubory (zdroje
nemusíte stahovat) a několik
další - kdo by odmítl wget, lynx,
BitchX, Python :) Ale nemusíte stahovat Perl... Mám
existoval ActivePerl - pokročilý emulátor Perlu. Stáhnout
k dispozici na http://www.acriveperl.com.
Žádné závady jsem nepozoroval :) (Řeknu vám, jak já
implementován v cygwin).

Nastavení

A v souboru "skupina" ve stejné složce "atd":
kořen:x:0:kořen

Pokud chcete zašifrovat své heslo, a
ne "heslo", jak jsem to udělal ve svém příkladu,
napsat skript v Perlu

#!/usr/bin/perl
chomp ($pass= );
tisk $crypt("SA",$pass);

Kde, SA - salta, která bude použita pro šifrování
heslo... můžete to udělat náhodně, ale
Tento článek bude mimo téma.

Nyní upravte soubor „c:\cygwin\cygnus.bat“ -
v něm změníme PATH, jednoduše změníme cestu na
emulátoru a cestu k souboru login.exe. Pojďme spustit
soubor.

Pojďme se přihlásit: v mém příkladu "root": "heslo".
Tak jsme se dostali do samotného emulátoru. já ne
Líbila se mi vstupní výzva. Pojďme to změnit
- proměnná PS1. Otevřete (vytvořte) soubor "c:\cygwin\etc\profile"
a napiš tam:

# /etc/profile
PROFILE_LOADED=1
PATH="/usr/local/bin:/usr/bin:/bin:/usr/sbin:/usr/local/sbin:$PATH"
zrušte nastavení DOSDRIVE
zrušit nastavení DOSDIR
zrušit nastavení TMPDIR
nenastavený TMP
export HOSTNAME=test
PS1="[\u@$HOSTNAME \W]# "
LOGNAME=$USER
exportovat PATH PS1 UŽIVATELSKÉ LOGNAME

Tady... Potom se znovu přihlásíme a vše bude zapnuto
místo a krásné :) Pozvánka bude: # - standard, Linux :)

To je vše, počáteční instalace je dokončena.
Pojďme k instalaci služeb :)

Součástí standardní dodávky je thuja hucha
služby. Musíte je spustit takto:
/usr/sbin/inetd -R /usr/sbin/in.ftpd (příklad pro ftpd).

Je lepší nainstalovat SSHD sami - fungovalo to s třeskem a
Jezdím ze SecureCRT, legální na 127.0.0.1 -
úplně jiný pohled :)

Co se týče práce s TCP/IP, nemám žádné nevýhody
Všiml jsem si :) Všechno se propojuje a funguje jako
nutné…

A teď pár tipů:

1) Přístup ke VŠEM diskům je otevřen. Tak buď
opatrný. Například jednotka d: se nachází zde -
"/cygdrive/d".

2) Pokud jde o Perl, vytvořte symbolický odkaz na soubor
Perl.exe, například, takže "ln -s /cygdrive/c/perl/bin/perl.exe
/usr/bin/perl"

3) Pokud z nějakého důvodu nemáte
Linuxová aplikace je nainstalována -
stačí opravit C kód. Možná
uspěje.. (tak jsem sestavil
micq).

4) Sledujte aktualizace Cygwin na webu http://www.cygwin.com
- binární soubory jsou často aktualizovány.

Otázky? Napište mi na e-mail - zkusím
pomoc...

Aby bylo možné psát aplikace pro Unix není nutné jej instalovat (pod slov Unix Všechno si promyslím *nix systémy). Toto tvrzení zní poněkud paradoxně, ale je pravdivé a v tomto článku se vás o tom pokusím přesvědčit.

Pokud nejste skutečný unixový guru, pak abyste mohli napsat několik aplikací pro tento OS nebo zkompilovat existující programy, nemusíte instalovat Unix. Pro tyto účely je ideální emulátor. Unix. Existuje mnoho skvělých programů, které tento úkol dokonale zvládají, například: UWin, MinGW, Cygwin atd.

Vhodné pro kompilaci jednoduchých programů: MinGW, ale pro složitější to není vhodné. Uwin je pokročilejší emulátor, ale jeho funkčnost je výrazně horší než u jiného populárnějšího emulátoru Cygwin.

Cygwin je velmi funkční, bezplatný emulátor Unix. Je distribuován jako jeden soubor ( setup.exe), nenechte se zmást velikostí tohoto souboru ( ~300 kb), to není on sám Cygwin, ale pouze jeho instalátor. Všechny potřebné nástroje a knihovny bude nutné stáhnout samostatně během procesu instalace, nebo můžete jako zdroj zadat místní adresář, pokud již potřebné soubory máte.

Cygwin obsahuje obrovské množství různých utilit a knihoven, z nichž mnohé pravděpodobně nebudete nikdy potřebovat, ale při instalaci Cygwin umožňuje vybrat pouze komponenty, které potřebujete. Pokud tedy chcete program pouze zkompilovat, budete muset nainstalovat pouze kompilátor GCC, sadu potřebných knihoven a utilit udělat. Osobně jsem všechny aplikace nainstaloval, protože Cygwin je snadné se jich kdykoli „zbavit“. Ve skutečnosti Cygwin sestává pouze z jednoho souboru cygwin1.dll, vše ostatní jsou softwarové balíčky GNU, speciálně překompilovaný pro práci s Cygwin.



Myslím, že s instalací nebyly žádné problémy. Nyní se podívejme na několik jemností v nastavení a používání Cygwin. Po instalaci bude struktura složky, do které byl program nainstalován, připomínat strukturu *nix systémy. Aby bylo možné spustit Cygwin, jen běž soubor BAT, cygwin.bat, který se nachází v kořenovém adresáři Cygwin(kořenovým adresářem rozumíme složku, ve které je Cygwin, v budoucnu budeme počítat z tohoto katalogu). Po spuštění soubor BAT Před vámi se objeví konzolová aplikace. Tohle je ten pravý Bash, což je spojnice mezi Unix A Windows. Bash- to není jen analog cmd.exe. Bash je plnohodnotný programovací jazyk, ve kterém můžete psát skripty pro provádění různých úkolů. Právě tím se zásadně liší od cmd.exe (command.com).

Pozvání Bash, prakticky se neliší od cmd.exe (~ - znamená váš domovský adresář). Nejsou zde žádné logické jednotky (A, C, D atd.), odpočítávání je z kořenového adresáře označeného " / Také si musíte pamatovat, že případ je zde důležitý, takže Atd A atd- dva zcela odlišné katalogy. Zkusme přejít do kořenového adresáře, k tomu stačí spustit příkaz, který je vám známý " CD/" (~ by se měl změnit na / ). Poté zadejte příkaz " dir", nebo " ls", abyste viděli obsah kořenového adresáře. Myslím, že nyní chápete, co je kořenový adresář.





Nemohu popsat všechny příkazy v tomto článku, takže přejděme rovnou k nejdůležitější fázi, pro kterou jsme vlastně nastavili Cygwin. Zkusme sestavit nějaký program. Pro sestavení jsem zvolil program Htop(http://freshmeat.net/projects/htop/), toto je vylepšená verze standardního programu nahoře, což je správce procesů konzoly. Prvním krokem je rozbalení archivu. Můžete to udělat jako v Windows a přímo dovnitř Cygwin. V Cygwin to se provádí příkazem:

tar zxf htop-0.6.tar.gz

Samozřejmě v tuto chvíli musíte být ve stejném adresáři, kde je umístěn archiv htop-0.6.tar.gz. Po rozbalení přejděte do vytvořeného adresáře htop-0,6 a spusťte tři standardní příkazy pro kompilaci aplikace.

./configure
udělat
provést instalaci



To je vše, kompilace je dokončena. Neváhejte nabrat tým htop a obdivovat výsledek. Výsledný "EXE" je umístěn v adresáři /usr/local/bin/.



Nyní si zkusme sami napsat jednoduchý program ( Ahoj světe) a zkompilujte jej pomocí GCC. Nejprve musíme napsat samotný program, uděláme to pomocí programu kočka. Zadejte příkaz kočka nová.c, Kde nový.c název souboru obsahujícího zdrojový kód. Po provedení příkazu napište následující kód:

#zahrnout
int main())(
printf("Ahoj světe");
vrátit 1 ;)

Po zadání kódu stiskněte Ctrl+C. Nyní jej zkompilujeme pomocí GCC. To se provádí příkazem:

Gcc new.c -o new.exe

Ve stejném adresáři, kde byl umístěn nový.c objeví se další soubor - new.exe. Když jej spustíte, uvidíte očekávanou zprávu " Ahoj světe".



Toto by mohl být konec článku, ale rozhodl jsem se mluvit také o grafickém prostředí Cygwin abych se k tomuto tématu později nevracel. Myslím, že jste si toho všimli při instalaci balíčků Cygwin navrhuje instalaci shellů Gnome A KDE. Ve skutečnosti se nejedná pouze o shelly, ale o jejich knihovny, které jsou nezbytné pro běh aplikací. Například grafická verze slavného editoru emacs, poběží přímo pod Windows jako by to bylo aplikace win32. Abychom nebyli neopodstatnění, zkusme tento Emacs běh. To se provádí příkazem:

xemacs

To je to, co uvidíme.



Jak vidíte, vše nastartuje a funguje dobře. Ale to se nestává každému. Grafické prostředí je velmi rozmarné. Proto jej musíte umět nakonfigurovat. Dokumentace k nastavení X servery Na internetu je jich spousta a snadno to najdete.

Na závěr bych vám rád připomněl, že bez ohledu na to, jak dobrý Cygwin, je to jen emulátor. A jak víte, kopie nemůže být lepší než originál, takže pokud se chcete stát skutečným unixovým guru, nebuďte líní nainstalovat si plnohodnotnou unixovou distribuční sadu. Podle mého názoru je lepší začít Linux. Ze všech možných distribucí vám doporučuji Slackware.




Nahoru