<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://library.morph.zone/index.php?action=history&amp;feed=atom&amp;title=Przydatne_opcje_kompilatora</id>
		<title>Przydatne opcje kompilatora - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://library.morph.zone/index.php?action=history&amp;feed=atom&amp;title=Przydatne_opcje_kompilatora"/>
		<link rel="alternate" type="text/html" href="http://library.morph.zone/index.php?title=Przydatne_opcje_kompilatora&amp;action=history"/>
		<updated>2026-05-15T16:16:14Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://library.morph.zone/index.php?title=Przydatne_opcje_kompilatora&amp;diff=1359&amp;oldid=prev</id>
		<title>Krashan: Translation finished.</title>
		<link rel="alternate" type="text/html" href="http://library.morph.zone/index.php?title=Przydatne_opcje_kompilatora&amp;diff=1359&amp;oldid=prev"/>
				<updated>2011-04-06T12:31:10Z</updated>
		
		<summary type="html">&lt;p&gt;Translation finished.&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 12:31, 6 April 2011&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-l22&quot; &gt;Line 22:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 22:&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;Opcje te kontrolują przed jakimi potencjalnie niebezpiecznymi konstrukcjami programistycznymi kompilator będzie nas ostrzegał. Niektórzy programiści narzekają na kompilator (zwłaszcza na wersję GCC 4), że &amp;quot;czepia się nieistotnych szczegółów&amp;quot;. Mimo to warto włączyć większość ostrzeżeń, może to zaoszczędzić wielu godzin spędzonych na wyszukiwaniu błędów w programie...&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;Opcje te kontrolują przed jakimi potencjalnie niebezpiecznymi konstrukcjami programistycznymi kompilator będzie nas ostrzegał. Niektórzy programiści narzekają na kompilator (zwłaszcza na wersję GCC 4), że &amp;quot;czepia się nieistotnych szczegółów&amp;quot;. Mimo to warto włączyć większość ostrzeżeń, może to zaoszczędzić wielu godzin spędzonych na wyszukiwaniu błędów w programie...&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;amp;minus;Wall''', &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;turns on warnings for typical potentially dangerous language constructs&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Example ones are using a value of assignment as a logical condition&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;or using arithmetic on &lt;/del&gt;''void*'' &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;pointers&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;While syntactically legal&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;such constructs may be &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;result of mistyping, and even when used intentionally, may produce errors that can be very hard to debug&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;This option is a must for any reasonable programmer&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;'''&amp;amp;minus;Wall''', &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;włącza ostrzeżenia dla najczęściej spotykanych potencjalnie niebezpiecznych konstrukcji języka&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Są to na przykład przypadki użycia wartości przypisania jako warunku logicznego&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;czy arytmetyka na wskaźnikach typu &lt;/ins&gt;''void*''. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Jakkolwiek są to konstrukcje poprawne syntaktycznie, mogą być często efektem pomyłki w pisaniu kodu&lt;/ins&gt;, a &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;jeśli nawet użyte celowo &amp;amp;ndash; są często źródłem trudnych do zdebugowania błędów&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Włączenie tej opcji powinno być czymś oczywistym dla każdego rozsądnego programisty&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;amp;minus;Wextra''', &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;turns on even more warnings &lt;/del&gt;(&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;this option is '''&amp;amp;minus;W''' in &lt;/del&gt;GCC 2.95.3&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;). There is no serious reason to not use this option together with &lt;/del&gt;'''&amp;amp;minus;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Wall&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;'''&amp;amp;minus;Wextra''', &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;włącza jeszcze więcej ostrzeżeń &lt;/ins&gt;(&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;w &lt;/ins&gt;GCC 2.95.3 &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ta opcja ma postać &lt;/ins&gt;'''&amp;amp;minus;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;W&lt;/ins&gt;'''&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;). Nie ma poważnego powodu, żeby i jej nie włączyć&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 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;&amp;lt;small&amp;gt;Uwaga: GCC4 ma jedną irytującą właściwość. Stałe znakowe z założenia są typu ''char'' i nie można tego zmienić. Prawie całe systemowe API MorphOS-a używa do tekstów typu ''STRPTR'', który jest zdefiniowany dyrektywą ''typedef'' jako ''unsigned char*''. Używanie stałych znakowych jako argumentów funkcji z API wywołuje mnóstwo ostrzeżeń kompilatora. Najpoprawniejszym (choć żmudnym) sposobem ich uniknięcia jest jawne rzutowanie typu każdej stałej znakowej na ''STRPTR''. Alternatywnym rozwiązaniem jest wyłączenie ostrzeżeń opcją '''&amp;amp;minus;Wno-pointer-sign'''. Wadą tego sposobu jest to, że opcja ta wyłącza ostrzeżenia o znaku nie tylko do wskaźników na ''char'' ale także wszystkie inne typy całkowitoliczbowe. Trzecim sposobem, dobrym do zastosowania w nowo pisanym kodzie jest zmiana definicji typu ''STRPTR'' (i pokrewnych). Można to zrobić umieszczając następujący fragment kodu '''przed''' zainkludowaniem pliku nagłówkowego ''&amp;lt;exec/types.h&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;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;lt;small&amp;gt;Note: GCC4 has an irritating feature. String literals are assumed to be arrays of fixed ''&lt;/del&gt;char&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'' type. Almost all the MorphOS API functions expect strings to be of type ''&lt;/del&gt;STRPTR&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'' which is a &lt;/del&gt;typedef &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;of ''unsigned &lt;/del&gt;char*&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;''. Passing literals to these functions produces tons of warnings. The clean way to avoid it, is to explicitly cast every literal passed to the MorphOS API as ''STRPTR''. An alternative is to suppress these warnings with '''&amp;amp;minus&lt;/del&gt;;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Wno-pointer-sign'''. The disadvantage of this second solution is that it also suppresses pointer signedness warnings for all other integer types, not only for ''char''.&amp;lt;/small&amp;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; typedef &lt;/ins&gt;char&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;* &lt;/ins&gt;STRPTR&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 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; &lt;/ins&gt;typedef &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;const &lt;/ins&gt;char* &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;CONST_STRPTR&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 class=&quot;diffchange diffchange-inline&quot;&gt; #define STRPTR_TYPEDEF&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 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;Używając tego sposobu musimy mieć '''całkowitą pewność''', że nie wykonujemy na tekstach wskazywanych przez ''STRPTR'' arytmetyki zakładającej znak (a jeżeli to robimy, wszędzie muszą być jawne rzutowania typu). Dlatego bardzo ryzykowne jest stosowanie tego sposobu do starego kodu.&amp;lt;/small&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==Linker options==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&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;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'''&amp;amp;minus;noixemul''', instructs the linker to use the static ''libnix'' library for standard C/C++ functions and startup code. Without this parameter, the shared library ''ixemul.library'' is used. [[Installation_of_Software_Development_Kit_and_its_basic_usage#Standard_C_and_C++_Libraries|Read more]].&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;==Opcje linkera==&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;amp;minus;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;s&lt;/del&gt;''', &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;instructs the linker to strip debug information and symbol tables&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;This information is not needed in a release executable&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Stripping them lowers the executable size significantly&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;'''&amp;amp;minus;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;noixemul&lt;/ins&gt;''', &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;powoduje, zlinkowanie programu z biblioteką statyczną ''libnix'', która dostarcza bibliotekę standardową C/C++ i kod startowy programu&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Bez tego parametru używana jest biblioteka współdzielona ''ixemul.library'' i odpowiadający jej kod startowy&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;[[Instalacja SDK (Software Development Kit) i podstawy jego używania#Standardowe biblioteki C i C++|Więcej]]&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 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;'''&amp;amp;minus;s''', po zlinkowaniu usuwa z pliku wykonywalnego informacje debugera i tablice symboli. Te informacje nie są potrzebne w programie w wersji do dystrybucji. Usunięcie ich znacząco zmniejsza rozmiar pliku wykonywalnego.&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;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==Optimization options==&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&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;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;'''&amp;amp;minus;On''', where ''n'' ranges from 0 to 3. The parameter is a global control of execution speed optimizer. Higher numbers make the optimizer more aggressive. '''&amp;amp;minus;O2''' seems to be the best for everyday use. '''&amp;amp;minus;O3''' turns on many optimizations which can significantly increase the executable size. Good programmers optimize their algorithms in the first place, compiler optimizations can't fix design errors...&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;==Opcje optymalizatora==&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;amp;minus;Os''', &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;turns on executable size optimization, at the cost of execution speed&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Not very useful for typical applications&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;'''&amp;amp;minus;On''', gdzie ''n'' jest z przedziału od 0 do 3. Parametr kontroluje ogólną &amp;quot;siłę&amp;quot; optymalizacji. '''&amp;amp;minus;O2''' wydaje się być najlepszym wyborem do codziennego użycia. '''&amp;amp;minus;O3''' włącza wiele optymalizacji, które mogą silnie wpłynąć na zwiększenie się rozmiaru pliku wykonywalnego. Dobrzy programiści przede wszystkim optymalizują swoje algorytmy, kompilator nie jest w stanie poprawić błędów projektowych...&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;'''&amp;amp;minus;Os''', &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;włącza optymalizację pod kątem zmniejszenia rozmiaru kodu kosztem szybkości wykonania&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Raczej nieprzydatna dla typowych programów opcja&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Krashan</name></author>	</entry>

	<entry>
		<id>http://library.morph.zone/index.php?title=Przydatne_opcje_kompilatora&amp;diff=1358&amp;oldid=prev</id>
		<title>Krashan: Translation in progress.</title>
		<link rel="alternate" type="text/html" href="http://library.morph.zone/index.php?title=Przydatne_opcje_kompilatora&amp;diff=1358&amp;oldid=prev"/>
				<updated>2011-04-06T11:54:09Z</updated>
		
		<summary type="html">&lt;p&gt;Translation in progress.&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 11:54, 6 April 2011&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-l15&quot; &gt;Line 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&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;==Kolejność parametrów==&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;==Kolejność parametrów==&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;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The order of passing options to &lt;/del&gt;GCC &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;is not important in general&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;There are some critical exceptions however&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The most common one is order of passing static libraries to the linker&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Let's assume linking with two static libraries &lt;/del&gt;''libfoo.a'' &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;and &lt;/del&gt;''libbar.a''. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;This requires passing &lt;/del&gt;''&amp;amp;minus;lfoo &amp;amp;minus;lbar'' &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;parameters to the linker&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;However, in the case where &lt;/del&gt;''libbar'' &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;uses functions from &lt;/del&gt;''libfoo'', &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;the &lt;/del&gt;''&amp;amp;minus;lfoo'' &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;option must be passed &lt;/del&gt;'''&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;after&lt;/del&gt;''' &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;the &lt;/del&gt;''&amp;amp;minus;lbar'' &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;option&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The &lt;/del&gt;linker &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;will be left with unresolved symbols in &lt;/del&gt;''libbar'' &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;otherwise&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;Generalnie rzecz biorąc, kolejność parametrów podawanych w &lt;/ins&gt;GCC &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;nie jest istotna&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Są jednak od tej ogólnej zasady ważne wyjątki&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Najważniejszym z nich jest podawanie linkerowi nazw bibliotek statycznych, z jakimi ma zostać zlinkowany program&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Przypuśćmy, że linkujemy z dwiema bibliotekami &lt;/ins&gt;''libfoo.a'' &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;i &lt;/ins&gt;''libbar.a''. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Wymaga to podania linkerowi dwóch parametrów: &lt;/ins&gt;''&amp;amp;minus;lfoo &amp;amp;minus;lbar''. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Jeżeli jednak bibkioteka &lt;/ins&gt;''libbar'' &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;używa funkcji z &lt;/ins&gt;''libfoo'', &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;parametr &lt;/ins&gt;''&amp;amp;minus;lfoo'' &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;musi być podany &lt;/ins&gt;'''&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;po&lt;/ins&gt;''' &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;parametrze &lt;/ins&gt;''&amp;amp;minus;lbar''. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;W przeciwnym wypadku &lt;/ins&gt;linker &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;nie będzie w stanie rozwinąć wszystkich symboli z &lt;/ins&gt;''libbar''.&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;/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;==&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Warning options&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;Opcje ostrzeżeń kompilatora&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;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;These options control warnings issued by the compiler on some potentially dangerous language constructs&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;While some programmers complain about the compiler being too picky&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;it is recommended &lt;/del&gt;to &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;turn most of these options on. It can save hours of time wasted on debugging&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;Opcje te kontrolują przed jakimi potencjalnie niebezpiecznymi konstrukcjami programistycznymi kompilator będzie nas ostrzegał&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Niektórzy programiści narzekają na kompilator (zwłaszcza na wersję GCC 4)&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;że &amp;quot;czepia się nieistotnych szczegółów&amp;quot;. Mimo to warto włączyć większość ostrzeżeń, może &lt;/ins&gt;to &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;zaoszczędzić wielu godzin spędzonych na wyszukiwaniu błędów w programie&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;amp;minus;Wall''', turns on warnings for typical potentially dangerous language constructs. Example ones are using a value of assignment as a logical condition, or using arithmetic on ''void*'' pointers. While syntactically legal, such constructs may be a result of mistyping, and even when used intentionally, may produce errors that can be very hard to debug. This option is a must for any reasonable programmer.&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;amp;minus;Wall''', turns on warnings for typical potentially dangerous language constructs. Example ones are using a value of assignment as a logical condition, or using arithmetic on ''void*'' pointers. While syntactically legal, such constructs may be a result of mistyping, and even when used intentionally, may produce errors that can be very hard to debug. This option is a must for any reasonable programmer.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Krashan</name></author>	</entry>

	<entry>
		<id>http://library.morph.zone/index.php?title=Przydatne_opcje_kompilatora&amp;diff=1357&amp;oldid=prev</id>
		<title>Krashan: Translation in progress.</title>
		<link rel="alternate" type="text/html" href="http://library.morph.zone/index.php?title=Przydatne_opcje_kompilatora&amp;diff=1357&amp;oldid=prev"/>
				<updated>2011-04-05T10:23:16Z</updated>
		
		<summary type="html">&lt;p&gt;Translation in progress.&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 10:23, 5 April 2011&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-l8&quot; &gt;Line 8:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 8:&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;==Kompilacja i linkowanie==&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;==Kompilacja i linkowanie==&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;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;For every project consisting of more than one source file&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;the process of building the executable program is divided into two stages&lt;/del&gt;: &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;compiling and linking&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Compilation turns every source code file into an &lt;/del&gt;object file. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Linking merges all object files (and static libraries) into the final executable&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;For simple single file projects&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;these two stages merge into one&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;Dla każdego projektu składającego się z więcej niż jednego pliku z kodem&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;proces budowania gotowego programu jest podzielony na dwa etapy&lt;/ins&gt;: &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;kompilację i linkowanie&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Kompilacja zamienia każdy plik z kodem źródłowym na plik zawierający odpowiadający mu kod wykonywalny procesora (ang. ''&lt;/ins&gt;object file&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;'')&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Linkowanie łączy pliki wygenerowane przez kompilator w gotowy plik wykonywalny programu&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Dla prostych projektów mieszczących się w jednym pliku źródłowym&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;te dwa etapy połączone są w jeden proces&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;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Both the stages have different options&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Some options are relevant only for compiling&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;some only for linking&lt;/del&gt;, &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;and some are important for both&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Fortunately option names never overlap. Then the safe solution is to pass &lt;/del&gt;'''&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;all&lt;/del&gt;''' &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;the desired options for both stages&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Irrelevant ones will be simply ignored&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;Oba etapy budowania programu mają swoje parametry&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Część opcji jest brana pod uwage tylko przy kompilacji&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;część tylko przy linkowaniu&lt;/ins&gt;, &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;niektóre są ważne dla obu&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Na szczęście nazwy parametrów dla obu etapów nigdy się nie pokrywają, dlatego bezpiecznym rozwiązaniem jest podanie '''wszystkich''' żądanych opcji w &lt;/ins&gt;'''&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;obu&lt;/ins&gt;''' &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;etapach&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Nadmiarowe parametry zostaną po prostu zignorowane&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;/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;==&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Options order&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;Kolejność parametrów&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;The order of passing options to GCC is not important in general. There are some critical exceptions however. The most common one is order of passing static libraries to the linker. Let's assume linking with two static libraries ''libfoo.a'' and ''libbar.a''. This requires passing ''&amp;amp;minus;lfoo &amp;amp;minus;lbar'' parameters to the linker. However, in the case where ''libbar'' uses functions from ''libfoo'', the ''&amp;amp;minus;lfoo'' option must be passed '''after''' the ''&amp;amp;minus;lbar'' option. The linker will be left with unresolved symbols in ''libbar'' otherwise.&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;The order of passing options to GCC is not important in general. There are some critical exceptions however. The most common one is order of passing static libraries to the linker. Let's assume linking with two static libraries ''libfoo.a'' and ''libbar.a''. This requires passing ''&amp;amp;minus;lfoo &amp;amp;minus;lbar'' parameters to the linker. However, in the case where ''libbar'' uses functions from ''libfoo'', the ''&amp;amp;minus;lfoo'' option must be passed '''after''' the ''&amp;amp;minus;lbar'' option. The linker will be left with unresolved symbols in ''libbar'' otherwise.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Krashan</name></author>	</entry>

	<entry>
		<id>http://library.morph.zone/index.php?title=Przydatne_opcje_kompilatora&amp;diff=1356&amp;oldid=prev</id>
		<title>Krashan: Translation in progress.</title>
		<link rel="alternate" type="text/html" href="http://library.morph.zone/index.php?title=Przydatne_opcje_kompilatora&amp;diff=1356&amp;oldid=prev"/>
				<updated>2011-04-05T10:14:22Z</updated>
		
		<summary type="html">&lt;p&gt;Translation in progress.&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 10:14, 5 April 2011&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-l4&quot; &gt;Line 4:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 4:&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;/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;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;The &lt;/del&gt;GCC &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;compiler has hundreds of options&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Some of them are irrelevant for typical usage, some of them are irrelevant for &lt;/del&gt;PowerPC &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;architecture&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;This article presents &lt;/del&gt;a &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;set of common options used when compiling MorphOS programs&lt;/del&gt;. &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;For detailed descriptions of all options see the &lt;/del&gt;[http://gcc.gnu.org/onlinedocs/ GCC &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;manual&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;Kompilator &lt;/ins&gt;GCC &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;ma setki opcji&lt;/ins&gt;. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Znaczna część z nich nie jest istotna z punktu widzenia typowego użycia pod MorphOS-em. Część z nich nie jest istotna z punktu widzenia architektury &lt;/ins&gt;PowerPC. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;W artykule opisany jest zestaw najważniejszych opcji potrzebnych w kompilowaniu programów dla MorphOS-&lt;/ins&gt;a. &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;Szczegółowy opis wszystkich parametrów znajduje się w &lt;/ins&gt;[http://gcc.gnu.org/onlinedocs/ &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;instrukcji obsługi &lt;/ins&gt;GCC].&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;==&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Compiling and linking&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;Kompilacja i linkowanie&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;For every project consisting of more than one source file, the process of building the executable program is divided into two stages: compiling and linking. Compilation turns every source code file into an object file. Linking merges all object files (and static libraries) into the final executable. For simple single file projects, these two stages merge into one.&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;For every project consisting of more than one source file, the process of building the executable program is divided into two stages: compiling and linking. Compilation turns every source code file into an object file. Linking merges all object files (and static libraries) into the final executable. For simple single file projects, these two stages merge into one.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Krashan</name></author>	</entry>

	<entry>
		<id>http://library.morph.zone/index.php?title=Przydatne_opcje_kompilatora&amp;diff=1354&amp;oldid=prev</id>
		<title>Krashan: Added crosslink to English version.</title>
		<link rel="alternate" type="text/html" href="http://library.morph.zone/index.php?title=Przydatne_opcje_kompilatora&amp;diff=1354&amp;oldid=prev"/>
				<updated>2011-04-05T07:10:53Z</updated>
		
		<summary type="html">&lt;p&gt;Added crosslink to English version.&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 07:10, 5 April 2011&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;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 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;''Grzegorz Kraszewski''&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;''Grzegorz Kraszewski''&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;&amp;lt;small&amp;gt;Ten artykuł w innych językach: [[Useful Compiler Options|angielski]]&amp;lt;/small&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;/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;/table&gt;</summary>
		<author><name>Krashan</name></author>	</entry>

	<entry>
		<id>http://library.morph.zone/index.php?title=Przydatne_opcje_kompilatora&amp;diff=1353&amp;oldid=prev</id>
		<title>Krashan: New translation, imported English text.</title>
		<link rel="alternate" type="text/html" href="http://library.morph.zone/index.php?title=Przydatne_opcje_kompilatora&amp;diff=1353&amp;oldid=prev"/>
				<updated>2011-04-05T07:09:38Z</updated>
		
		<summary type="html">&lt;p&gt;New translation, imported English text.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;''Grzegorz Kraszewski''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The GCC compiler has hundreds of options. Some of them are irrelevant for typical usage, some of them are irrelevant for PowerPC architecture. This article presents a set of common options used when compiling MorphOS programs. For detailed descriptions of all options see the [http://gcc.gnu.org/onlinedocs/ GCC manual].&lt;br /&gt;
&lt;br /&gt;
==Compiling and linking==&lt;br /&gt;
&lt;br /&gt;
For every project consisting of more than one source file, the process of building the executable program is divided into two stages: compiling and linking. Compilation turns every source code file into an object file. Linking merges all object files (and static libraries) into the final executable. For simple single file projects, these two stages merge into one.&lt;br /&gt;
&lt;br /&gt;
Both the stages have different options. Some options are relevant only for compiling, some only for linking, and some are important for both. Fortunately option names never overlap. Then the safe solution is to pass '''all''' the desired options for both stages. Irrelevant ones will be simply ignored.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Options order==&lt;br /&gt;
&lt;br /&gt;
The order of passing options to GCC is not important in general. There are some critical exceptions however. The most common one is order of passing static libraries to the linker. Let's assume linking with two static libraries ''libfoo.a'' and ''libbar.a''. This requires passing ''&amp;amp;minus;lfoo &amp;amp;minus;lbar'' parameters to the linker. However, in the case where ''libbar'' uses functions from ''libfoo'', the ''&amp;amp;minus;lfoo'' option must be passed '''after''' the ''&amp;amp;minus;lbar'' option. The linker will be left with unresolved symbols in ''libbar'' otherwise.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Warning options==&lt;br /&gt;
&lt;br /&gt;
These options control warnings issued by the compiler on some potentially dangerous language constructs. While some programmers complain about the compiler being too picky, it is recommended to turn most of these options on. It can save hours of time wasted on debugging...&lt;br /&gt;
&lt;br /&gt;
'''&amp;amp;minus;Wall''', turns on warnings for typical potentially dangerous language constructs. Example ones are using a value of assignment as a logical condition, or using arithmetic on ''void*'' pointers. While syntactically legal, such constructs may be a result of mistyping, and even when used intentionally, may produce errors that can be very hard to debug. This option is a must for any reasonable programmer.&lt;br /&gt;
&lt;br /&gt;
'''&amp;amp;minus;Wextra''', turns on even more warnings (this option is '''&amp;amp;minus;W''' in GCC 2.95.3). There is no serious reason to not use this option together with '''&amp;amp;minus;Wall'''.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;small&amp;gt;Note: GCC4 has an irritating feature. String literals are assumed to be arrays of fixed ''char'' type. Almost all the MorphOS API functions expect strings to be of type ''STRPTR'' which is a typedef of ''unsigned char*''. Passing literals to these functions produces tons of warnings. The clean way to avoid it, is to explicitly cast every literal passed to the MorphOS API as ''STRPTR''. An alternative is to suppress these warnings with '''&amp;amp;minus;Wno-pointer-sign'''. The disadvantage of this second solution is that it also suppresses pointer signedness warnings for all other integer types, not only for ''char''.&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Linker options==&lt;br /&gt;
&lt;br /&gt;
'''&amp;amp;minus;noixemul''', instructs the linker to use the static ''libnix'' library for standard C/C++ functions and startup code. Without this parameter, the shared library ''ixemul.library'' is used. [[Installation_of_Software_Development_Kit_and_its_basic_usage#Standard_C_and_C++_Libraries|Read more]].&lt;br /&gt;
&lt;br /&gt;
'''&amp;amp;minus;s''', instructs the linker to strip debug information and symbol tables. This information is not needed in a release executable. Stripping them lowers the executable size significantly.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Optimization options==&lt;br /&gt;
&lt;br /&gt;
'''&amp;amp;minus;On''', where ''n'' ranges from 0 to 3. The parameter is a global control of execution speed optimizer. Higher numbers make the optimizer more aggressive. '''&amp;amp;minus;O2''' seems to be the best for everyday use. '''&amp;amp;minus;O3''' turns on many optimizations which can significantly increase the executable size. Good programmers optimize their algorithms in the first place, compiler optimizations can't fix design errors...&lt;br /&gt;
&lt;br /&gt;
'''&amp;amp;minus;Os''', turns on executable size optimization, at the cost of execution speed. Not very useful for typical applications.&lt;/div&gt;</summary>
		<author><name>Krashan</name></author>	</entry>

	</feed>