<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="cs">
		<id>https://www.pslib.cz/milan.kerslager/index.php?action=history&amp;feed=atom&amp;title=P%C5%99eklad_se_z%C3%A1vislostmi_%28make_a_soubor_Makefile%29</id>
		<title>Překlad se závislostmi (make a soubor Makefile) - Historie editací</title>
		<link rel="self" type="application/atom+xml" href="https://www.pslib.cz/milan.kerslager/index.php?action=history&amp;feed=atom&amp;title=P%C5%99eklad_se_z%C3%A1vislostmi_%28make_a_soubor_Makefile%29"/>
		<link rel="alternate" type="text/html" href="https://www.pslib.cz/milan.kerslager/index.php?title=P%C5%99eklad_se_z%C3%A1vislostmi_(make_a_soubor_Makefile)&amp;action=history"/>
		<updated>2026-04-14T20:07:52Z</updated>
		<subtitle>Historie editací této stránky</subtitle>
		<generator>MediaWiki 1.28.0</generator>

	<entry>
		<id>https://www.pslib.cz/milan.kerslager/index.php?title=P%C5%99eklad_se_z%C3%A1vislostmi_(make_a_soubor_Makefile)&amp;diff=3252&amp;oldid=prev</id>
		<title>Milan.Kerslager: /* Makefile */ doplnění</title>
		<link rel="alternate" type="text/html" href="https://www.pslib.cz/milan.kerslager/index.php?title=P%C5%99eklad_se_z%C3%A1vislostmi_(make_a_soubor_Makefile)&amp;diff=3252&amp;oldid=prev"/>
				<updated>2010-05-28T14:01:17Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Makefile: &lt;/span&gt; doplnění&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='cs'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Verze z 28. 5. 2010, 14:01&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l38&quot; &gt;Řádka 38:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 38:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;První pravidlo ''all'' je implicitní a definuje přeložení celého projektu. Jako závislost má definován cíl (soubor) &amp;lt;code&amp;gt;ahoj&amp;lt;/code&amp;gt;. Druhé pravidlo (''ahoj'') předepisuje závislost na souborech &amp;lt;code&amp;gt;ahoj.o&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;funkce.o&amp;lt;/code&amp;gt;, ze kterých je následujícím výkonným řádkem vyroben spustitelný soubor. Výkonný řádek bude spuštěn jen v případě, že některý z těchto souborů nebude existovat nebo když bude některý z nich novější, než cílový spustitelný soubor &amp;lt;code&amp;gt;ahoj&amp;lt;/code&amp;gt;. Třetí pravidlo &amp;lt;code&amp;gt;ahoj.o&amp;lt;/code&amp;gt; definuje výkonný řádek, který bude proveden v závislosti na stavu souborů &amp;lt;code&amp;gt;ahoj.c&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;funkce.h&amp;lt;/code&amp;gt;. Čtvrté pravidlo &amp;lt;code&amp;gt;funkce.o&amp;lt;/code&amp;gt; definuje postup pro vytvoření stejnojmenného souboru v závislosti na stavu souboru &amp;lt;code&amp;gt;funkce.c&amp;lt;/code&amp;gt;:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;První pravidlo ''all'' je implicitní a definuje přeložení celého projektu. Jako závislost má definován cíl (soubor) &amp;lt;code&amp;gt;ahoj&amp;lt;/code&amp;gt;. Druhé pravidlo (''ahoj'') předepisuje závislost na souborech &amp;lt;code&amp;gt;ahoj.o&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;funkce.o&amp;lt;/code&amp;gt;, ze kterých je následujícím výkonným řádkem vyroben spustitelný soubor. Výkonný řádek bude spuštěn jen v případě, že některý z těchto souborů nebude existovat nebo když bude některý z nich novější, než cílový spustitelný soubor &amp;lt;code&amp;gt;ahoj&amp;lt;/code&amp;gt;. Třetí pravidlo &amp;lt;code&amp;gt;ahoj.o&amp;lt;/code&amp;gt; definuje výkonný řádek, který bude proveden v závislosti na stavu souborů &amp;lt;code&amp;gt;ahoj.c&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;funkce.h&amp;lt;/code&amp;gt;. Čtvrté pravidlo &amp;lt;code&amp;gt;funkce.o&amp;lt;/code&amp;gt; definuje postup pro vytvoření stejnojmenného souboru v závislosti na stavu souboru &amp;lt;code&amp;gt;funkce.c&amp;lt;/code&amp;gt;:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pravidlo ''clean'' slouží ke smazání produktů kompilace (object soubory a výsledný binární soubor).&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; CC&amp;#160; &amp;#160; &amp;#160; = gcc&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; CC&amp;#160; &amp;#160; &amp;#160; = gcc&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Milan.Kerslager</name></author>	</entry>

	<entry>
		<id>https://www.pslib.cz/milan.kerslager/index.php?title=P%C5%99eklad_se_z%C3%A1vislostmi_(make_a_soubor_Makefile)&amp;diff=3152&amp;oldid=prev</id>
		<title>Milan.Kerslager: /* Příklad */ formulace</title>
		<link rel="alternate" type="text/html" href="https://www.pslib.cz/milan.kerslager/index.php?title=P%C5%99eklad_se_z%C3%A1vislostmi_(make_a_soubor_Makefile)&amp;diff=3152&amp;oldid=prev"/>
				<updated>2010-04-20T12:20:03Z</updated>
		
		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Příklad: &lt;/span&gt; formulace&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='cs'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Verze z 20. 4. 2010, 12:20&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l2&quot; &gt;Řádka 2:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 2:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Příklad ==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Příklad ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mějme větší projekt, který se skládá ze tří souborů: &amp;lt;code&amp;gt;ahoj.c&amp;lt;/code&amp;gt; (hlavní program), &amp;lt;code&amp;gt;funkce.c&amp;lt;/code&amp;gt; (soubor s funkcemi používanými hlavním programem) a &amp;lt;code&amp;gt;funkce.h&amp;lt;/code&amp;gt; (prototypy funkcí ve formě hlavičkového souboru)&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mějme větší projekt, který se skládá ze tří souborů: &amp;lt;code&amp;gt;ahoj.c&amp;lt;/code&amp;gt; (hlavní program), &amp;lt;code&amp;gt;funkce.c&amp;lt;/code&amp;gt; (soubor s funkcemi používanými hlavním programem) a &amp;lt;code&amp;gt;funkce.h&amp;lt;/code&amp;gt; (prototypy funkcí ve formě hlavičkového souboru)&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Soubor &amp;lt;code&amp;gt;ahoj.c&amp;lt;/code&amp;gt; obsahuje &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;direktivu &lt;/del&gt;preprocesoru pro vložení hlavičkového souboru &amp;lt;code&amp;gt;funkce.h&amp;lt;/code&amp;gt;, protože &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;obsahuje &lt;/del&gt;prototyp funkce &amp;lt;code&amp;gt;tiskni()&amp;lt;/code&amp;gt;, která je &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;v &lt;/del&gt;kódu použita&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;== Zdrojové kódy ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Soubor &amp;lt;code&amp;gt;ahoj.c&amp;lt;/code&amp;gt; obsahuje &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;hlavní funkci programu ''main'', ze které je volána funkce &amp;lt;code&amp;gt;tiskni()&amp;lt;/code&amp;gt;, která má zajistit samotný tisk zprávy na terminál. Tato funkce je záměrně vyvedena do samostatného souboru &amp;lt;code&amp;gt;tiskni.c&amp;lt;/code&amp;gt;. V úvodu zdrojového kódu je volána direktiva &lt;/ins&gt;preprocesoru pro vložení hlavičkového souboru &amp;lt;code&amp;gt;funkce.h&amp;lt;/code&amp;gt;, protože &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;při překladu je potřeba &lt;/ins&gt;prototyp funkce &amp;lt;code&amp;gt;tiskni()&amp;lt;/code&amp;gt;, která je &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;následně &lt;/ins&gt;kódu použita&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;. Direktiva preprocesoru je použita se znaky uvozovek (&amp;quot;...&amp;quot;), protože v takovém případě je relativní cesta k souboru vztažena k aktuálním adresáři.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l16&quot; &gt;Řádka 16:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 17:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/source&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Soubor &amp;lt;code&amp;gt;funkce.c&amp;lt;/code&amp;gt; obsahuje výkonný kód funkcí, které používáme v hlavním programu. Je v něm realizována funkce &amp;lt;code&amp;gt;tiskni()&amp;lt;/code&amp;gt;. V rámci souboru je nutné volat pomocí direktivy preprocesoru vložení hlavičkového souboru &amp;lt;code&amp;gt;stdio.h&amp;lt;/code&amp;gt;, protože &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;obsahuje &lt;/del&gt;prototyp funkce &amp;lt;code&amp;gt;printf()&amp;lt;/code&amp;gt;, která je ve funkci &amp;lt;code&amp;gt;tiskni()&amp;lt;/code&amp;gt; používána&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Soubor &amp;lt;code&amp;gt;funkce.c&amp;lt;/code&amp;gt; obsahuje výkonný kód funkcí, které používáme v hlavním programu. Je v něm realizována funkce &amp;lt;code&amp;gt;tiskni()&amp;lt;/code&amp;gt;. V rámci souboru je nutné volat pomocí direktivy preprocesoru vložení hlavičkového souboru &amp;lt;code&amp;gt;stdio.h&amp;lt;/code&amp;gt;, protože &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;při překladu je potřeba &lt;/ins&gt;prototyp funkce &amp;lt;code&amp;gt;printf()&amp;lt;/code&amp;gt;, která je &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;dále &lt;/ins&gt;ve funkci &amp;lt;code&amp;gt;tiskni()&amp;lt;/code&amp;gt; používána&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;. Direktiva preprocesoru je použita se znaky vran (&amp;amp;lt;...&amp;amp;gt;), protože mezi nimi uvedená relativní cesta je vztažena k adresáři se systémovými hlavičkovými soubory (FHS stanovuje adresář &amp;lt;code&amp;gt;/usr/include&amp;lt;/code&amp;gt;).&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key ke-home_:diff:version:1.11a:oldid:3151:newid:3152 --&gt;
&lt;/table&gt;</summary>
		<author><name>Milan.Kerslager</name></author>	</entry>

	<entry>
		<id>https://www.pslib.cz/milan.kerslager/index.php?title=P%C5%99eklad_se_z%C3%A1vislostmi_(make_a_soubor_Makefile)&amp;diff=3151&amp;oldid=prev</id>
		<title>Milan.Kerslager: Doplnění</title>
		<link rel="alternate" type="text/html" href="https://www.pslib.cz/milan.kerslager/index.php?title=P%C5%99eklad_se_z%C3%A1vislostmi_(make_a_soubor_Makefile)&amp;diff=3151&amp;oldid=prev"/>
				<updated>2010-04-20T11:25:49Z</updated>
		
		<summary type="html">&lt;p&gt;Doplnění&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;' lang='cs'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Starší verze&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Verze z 20. 4. 2010, 11:25&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot; &gt;Řádka 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Překlad se závislostmi''' využívá schopnosti příkazu make, která umožňuje porovnávat časy poslední modifikace souborů a na základě toho rozhodnout, zda budou provedeny výkonné řádky příslušného pravidla. Z tohoto důvodu se do pravidla za dvojtečku zapisuje seznam souborů, na kterých vykonání pravidla závisí. Překlad se závislostmi se používá zejména u větších projektů, které je vhodné překládat po menších částech (do tak zvaného ''object kódu''). Při překladu je pak pomocí závislostí přeložena jen ta část, která se změnila a ostatní části jsou použity z minulého překladu.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;'''Překlad se závislostmi''' využívá schopnosti příkazu make, která umožňuje porovnávat časy poslední modifikace souborů a na základě toho rozhodnout, zda budou provedeny výkonné řádky příslušného pravidla. Z tohoto důvodu se do pravidla za dvojtečku zapisuje seznam souborů, na kterých vykonání pravidla závisí. Překlad se závislostmi se používá zejména u větších projektů, které je vhodné překládat po menších částech (do tak zvaného ''object kódu''). Při překladu je pak pomocí závislostí přeložena jen ta část, která se změnila a ostatní části jsou použity z minulého překladu.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;== Příklad ==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mějme větší projekt, který se skládá ze tří souborů: &amp;lt;code&amp;gt;ahoj.c&amp;lt;/code&amp;gt; (hlavní program), &amp;lt;code&amp;gt;funkce.c&amp;lt;/code&amp;gt; (soubor s funkcemi používanými hlavním programem) a &amp;lt;code&amp;gt;funkce.h&amp;lt;/code&amp;gt; (prototypy funkcí ve formě hlavičkového souboru):&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Mějme větší projekt, který se skládá ze tří souborů: &amp;lt;code&amp;gt;ahoj.c&amp;lt;/code&amp;gt; (hlavní program), &amp;lt;code&amp;gt;funkce.c&amp;lt;/code&amp;gt; (soubor s funkcemi používanými hlavním programem) a &amp;lt;code&amp;gt;funkce.h&amp;lt;/code&amp;gt; (prototypy funkcí ve formě hlavičkového souboru):&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l33&quot; &gt;Řádka 33:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Řádka 34:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Makefile ===&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Makefile ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Soubor &lt;/del&gt;Makefile&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;, který &lt;/del&gt;bude na základě nadefinovaných závislostí schopen přeložit &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;následující program:&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Následující soubor &lt;/ins&gt;Makefile bude na základě nadefinovaných závislostí schopen přeložit &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;výše uvedené programy po jednotlivých částech tak, že z nich nejprve vytvoří polotovary (object kód, tj. soubory s příponou &amp;lt;code&amp;gt;.o&amp;lt;/code&amp;gt;). Výsledné polotovary jsou na závěr spojeny dohromady a je vytvořen výsledný spustitelný soubor &amp;lt;code&amp;gt;ahoj&amp;lt;/code&amp;gt;.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; ARGS	= -Wall&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;První pravidlo ''all'' je implicitní a definuje přeložení celého projektu. Jako závislost má definován cíl (soubor) &amp;lt;code&amp;gt;ahoj&amp;lt;/code&amp;gt;. Druhé pravidlo (''ahoj'') předepisuje závislost na souborech &amp;lt;code&amp;gt;ahoj.o&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;funkce.o&amp;lt;/code&amp;gt;, ze kterých je následujícím výkonným řádkem vyroben spustitelný soubor. Výkonný řádek bude spuštěn jen v případě, že některý z těchto souborů nebude existovat nebo když bude některý z nich novější, než cílový spustitelný soubor &amp;lt;code&amp;gt;ahoj&amp;lt;/code&amp;gt;. Třetí pravidlo &amp;lt;code&amp;gt;ahoj.o&amp;lt;/code&amp;gt; definuje výkonný řádek, který bude proveden v závislosti na stavu souborů &amp;lt;code&amp;gt;ahoj.c&amp;lt;/code&amp;gt; a &amp;lt;code&amp;gt;funkce.h&amp;lt;/code&amp;gt;. Čtvrté pravidlo &amp;lt;code&amp;gt;funkce.o&amp;lt;/code&amp;gt; definuje postup pro vytvoření stejnojmenného souboru v závislosti na stavu souboru &amp;lt;code&amp;gt;funkce.c&amp;lt;/code&amp;gt;:&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt; CC&amp;#160; &amp;#160; &amp;#160; = gcc&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; ARGS &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160;  &lt;/ins&gt;= -Wall&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; all: ahoj&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; all: ahoj&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; ahoj: ahoj.o funkce.o&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; ahoj: ahoj.o funkce.o&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;gcc &lt;/del&gt;$(ARGS) ahoj.o funkce.o -o ahoj&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;$(CC) &lt;/ins&gt;$(ARGS) ahoj.o funkce.o -o ahoj&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; ahoj.o: ahoj.c funkce.h&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; ahoj.o: ahoj.c funkce.h&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;gcc &lt;/del&gt;$(ARGS) -c ahoj.c&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;$(CC) &lt;/ins&gt;$(ARGS) -c ahoj.c&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; funkce.o: funkce.c&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; funkce.o: funkce.c&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;gcc &lt;/del&gt;$(ARGS) -c funkce.c&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;$(CC) &lt;/ins&gt;$(ARGS) -c funkce.c&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; clean:&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; clean:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	rm -fv *.o ahoj&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160; 	rm -fv *.o ahoj&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Napíšeme-li ''make'' bude projekt podle splnění závislostí přeložen.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Milan.Kerslager</name></author>	</entry>

	<entry>
		<id>https://www.pslib.cz/milan.kerslager/index.php?title=P%C5%99eklad_se_z%C3%A1vislostmi_(make_a_soubor_Makefile)&amp;diff=3150&amp;oldid=prev</id>
		<title>Milan.Kerslager: Založení článku</title>
		<link rel="alternate" type="text/html" href="https://www.pslib.cz/milan.kerslager/index.php?title=P%C5%99eklad_se_z%C3%A1vislostmi_(make_a_soubor_Makefile)&amp;diff=3150&amp;oldid=prev"/>
				<updated>2010-04-20T10:41:42Z</updated>
		
		<summary type="html">&lt;p&gt;Založení článku&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Nová stránka&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''Překlad se závislostmi''' využívá schopnosti příkazu make, která umožňuje porovnávat časy poslední modifikace souborů a na základě toho rozhodnout, zda budou provedeny výkonné řádky příslušného pravidla. Z tohoto důvodu se do pravidla za dvojtečku zapisuje seznam souborů, na kterých vykonání pravidla závisí. Překlad se závislostmi se používá zejména u větších projektů, které je vhodné překládat po menších částech (do tak zvaného ''object kódu''). Při překladu je pak pomocí závislostí přeložena jen ta část, která se změnila a ostatní části jsou použity z minulého překladu.&lt;br /&gt;
&lt;br /&gt;
Mějme větší projekt, který se skládá ze tří souborů: &amp;lt;code&amp;gt;ahoj.c&amp;lt;/code&amp;gt; (hlavní program), &amp;lt;code&amp;gt;funkce.c&amp;lt;/code&amp;gt; (soubor s funkcemi používanými hlavním programem) a &amp;lt;code&amp;gt;funkce.h&amp;lt;/code&amp;gt; (prototypy funkcí ve formě hlavičkového souboru):&lt;br /&gt;
&lt;br /&gt;
Soubor &amp;lt;code&amp;gt;ahoj.c&amp;lt;/code&amp;gt; obsahuje direktivu preprocesoru pro vložení hlavičkového souboru &amp;lt;code&amp;gt;funkce.h&amp;lt;/code&amp;gt;, protože obsahuje prototyp funkce &amp;lt;code&amp;gt;tiskni()&amp;lt;/code&amp;gt;, která je v kódu použita:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;quot;funkce.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  tiskni();&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Soubor &amp;lt;code&amp;gt;funkce.c&amp;lt;/code&amp;gt; obsahuje výkonný kód funkcí, které používáme v hlavním programu. Je v něm realizována funkce &amp;lt;code&amp;gt;tiskni()&amp;lt;/code&amp;gt;. V rámci souboru je nutné volat pomocí direktivy preprocesoru vložení hlavičkového souboru &amp;lt;code&amp;gt;stdio.h&amp;lt;/code&amp;gt;, protože obsahuje prototyp funkce &amp;lt;code&amp;gt;printf()&amp;lt;/code&amp;gt;, která je ve funkci &amp;lt;code&amp;gt;tiskni()&amp;lt;/code&amp;gt; používána:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void tiskni()&lt;br /&gt;
{&lt;br /&gt;
  printf(&amp;quot;Ahoj!\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hlavičkový soubor &amp;lt;code&amp;gt;funkce.h&amp;lt;/code&amp;gt; obsahuje prototypy funkcí, které jsou umístěny v souboru &amp;lt;code&amp;gt;tiskni.c&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
void tiskni()&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Makefile ===&lt;br /&gt;
Soubor Makefile, který bude na základě nadefinovaných závislostí schopen přeložit následující program:&lt;br /&gt;
&lt;br /&gt;
 ARGS	= -Wall&lt;br /&gt;
 &lt;br /&gt;
 all: ahoj&lt;br /&gt;
 &lt;br /&gt;
 ahoj: ahoj.o funkce.o&lt;br /&gt;
 	gcc $(ARGS) ahoj.o funkce.o -o ahoj&lt;br /&gt;
 &lt;br /&gt;
 ahoj.o: ahoj.c funkce.h&lt;br /&gt;
 	gcc $(ARGS) -c ahoj.c&lt;br /&gt;
 &lt;br /&gt;
 funkce.o: funkce.c&lt;br /&gt;
 	gcc $(ARGS) -c funkce.c&lt;br /&gt;
 &lt;br /&gt;
 clean:&lt;br /&gt;
 	rm -fv *.o ahoj&lt;/div&gt;</summary>
		<author><name>Milan.Kerslager</name></author>	</entry>

	</feed>