<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>3. Procesy a meziprocesní komunikace on B4B33OSY</title>
    <link>https://osy.fel.cvut.cz/docs/cviceni/processes-ipc/</link>
    <description>Recent content in 3. Procesy a meziprocesní komunikace on B4B33OSY</description>
    <generator>Hugo</generator>
    <language>cs</language>
    <lastBuildDate>Mon, 01 Jan 0001 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://osy.fel.cvut.cz/docs/cviceni/processes-ipc/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Make</title>
      <link>https://osy.fel.cvut.cz/docs/cviceni/processes-ipc/make/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://osy.fel.cvut.cz/docs/cviceni/processes-ipc/make/</guid>
      <description>&lt;h1 id=&#34;make&#34;&gt;Make&lt;a class=&#34;anchor&#34; href=&#34;#make&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.gnu.org/software/make/&#34;&gt;GNU make&lt;/a&gt; je nástroj pro automatizované&#xA;vytváření cílových souborů ze zdrojových souborů. Často se používá pro překlad&#xA;zdrojových souborů (např. C/C++) na spustitelné binární soubory, lze jej však s&#xA;výhodou použít pro všechny typy úloh kde se z nějakých souborů vytvářejí jiné&#xA;soubory.&lt;/p&gt;&#xA;&lt;p&gt;Make zpracuje předpis, kterému říkáme &lt;em&gt;makefile&lt;/em&gt; a který je zpravidla uložen v&#xA;souboru s názvem &lt;code&gt;Makefile&lt;/code&gt;. &lt;code&gt;Makefile&lt;/code&gt; je souborem pravidel v následujícím&#xA;tvaru:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-make&#34; data-lang=&#34;make&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;target&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;:&lt;/span&gt; dependencies&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    commands&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;target&lt;/code&gt; je název pravidla, který se zpravidla shoduje s názvem cílového&#xA;souboru, který chceme vytvořit.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;dependencies&lt;/code&gt; (závislosti) je nepovinný seznam souborů nebo jiných pravidel,&#xA;která jsou potřeba pro aplikaci tohoto pravidla. Pokud tyto soubory&#xA;neexistují, make se pokusí najít pravidla pro jejich vytvoření a rekurzivně&#xA;je vykoná. Pokud některý soubor nelze ani vytvořit, celé pravidlo selže.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;commands&lt;/code&gt; je sekvence příkazů (mohou být na více řádek), jejichž vykonáním&#xA;dojde k provedení pravidla.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;blockquote class=&#34;book-hint warning&#34;&gt;&#xA;&lt;p&gt;Příkazy v &lt;code&gt;Makefile&lt;/code&gt; musí být odsazeny &lt;strong&gt;tabulátorem&lt;/strong&gt;! Pozor na editory které&#xA;při stisku tabulátoru vloží sekvenci mezer!&lt;/p&gt;</description>
    </item>
    <item>
      <title>Překladač GCC</title>
      <link>https://osy.fel.cvut.cz/docs/cviceni/processes-ipc/gcc/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://osy.fel.cvut.cz/docs/cviceni/processes-ipc/gcc/</guid>
      <description>&lt;h1 id=&#34;přepínače-překladače-gcc&#34;&gt;Přepínače překladače GCC&lt;a class=&#34;anchor&#34; href=&#34;#p%c5%99ep%c3%adna%c4%8de-p%c5%99eklada%c4%8de-gcc&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;přepínače-pro-určení-výstupu&#34;&gt;Přepínače pro určení výstupu&lt;a class=&#34;anchor&#34; href=&#34;#p%c5%99ep%c3%adna%c4%8de-pro-ur%c4%8den%c3%ad-v%c3%bdstupu&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Pokud jsou vstupem gcc zdrojové soubory, nejdříve je překládá a poté implicitně&#xA;spouští linker, aby z nich vytvořil spustitelný soubor. Toto chování lze měnit&#xA;následujícími přepínači:&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;-c          kompilace do objektového souboru (vypnutí linkeru, který se spouští implicitně)&#xA;-E          ukončení po preprocesoru&#xA;-S          ukončení po překladu do assembleru&#xA;-shared     výstupem gcc je sdílená knihovna (.so)&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;obecné-přepínače&#34;&gt;Obecné přepínače&lt;a class=&#34;anchor&#34; href=&#34;#obecn%c3%a9-p%c5%99ep%c3%adna%c4%8de&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;-o  NAZEV   určení názvu výstupního souboru&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;přepínače-pro-kompilátor&#34;&gt;Přepínače pro kompilátor&lt;a class=&#34;anchor&#34; href=&#34;#p%c5%99ep%c3%adna%c4%8de-pro-kompil%c3%a1tor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;-g          zapnutí ukládání debug-informací do přeložených souborů&#xA;-W  LEVEL   nastavení úrovně varování, doporučeno nastavovat na -Wall&#xA;-D  MAKRO   definice makra (analogie #define) z příkazové řádky - možnost modifikace kódu v okamžiku překladu&#xA;-I  CESTA   přidání cesty k adresáři, kde se hledají hlavičkové (.h) soubory; parametr -I se opakuje pro každý adresář&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;h2 id=&#34;přepínače-pro-linker&#34;&gt;Přepínače pro linker&lt;a class=&#34;anchor&#34; href=&#34;#p%c5%99ep%c3%adna%c4%8de-pro-linker&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;pre&gt;&lt;code&gt;-l  LIB     přidání knihovny s daným názvem; přepínač -lknihovna hledá soubor libknihovna.so (popř. libknihovna.a)&#xA;-L  CESTA   přidání cesty k adresáři, kde se hledají knihovny&#xA;&lt;/code&gt;&lt;/pre&gt;</description>
    </item>
  </channel>
</rss>
