<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=4&amp;t=22767&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2020-01-03T09:35:56+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=4&amp;t=22767&amp;mode</id>
<entry>
<author><name><![CDATA[Harry]]></name></author>
<updated>2020-01-03T09:35:56+01:00</updated>
<published>2020-01-03T09:35:56+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22767&amp;p=223964#p223964</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22767&amp;p=223964#p223964"/>
<title type="html"><![CDATA[Re: Kompilacja warunkowa dołączanie bibliotek]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22767&amp;p=223964#p223964"><![CDATA[
Sorry że się wtrącę, ale dla mnie pisanie softu w powyższym stylu, to strzał w kolano w wersji indyjskiej <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><br /><br />Wysłane ze srajfona<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=14685">Harry</a> — 3 sty 2020, o 09:35</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2020-01-02T23:03:02+01:00</updated>
<published>2020-01-02T23:03:02+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22767&amp;p=223960#p223960</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22767&amp;p=223960#p223960"/>
<title type="html"><![CDATA[Re: Kompilacja warunkowa dołączanie bibliotek]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22767&amp;p=223960#p223960"><![CDATA[
Nie nie - nie zrozum mnie źle - ja też nie będę się wymądrzał bo kompletnie nie znam się z kolei na pisaniu softów w czystym C pod systemy operacyjne - być może tam są inne zasady - zatem pewnie w tym zakresie ty masz rację.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 2 sty 2020, o 23:03</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rosto]]></name></author>
<updated>2020-01-02T21:31:31+01:00</updated>
<published>2020-01-02T21:31:31+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22767&amp;p=223959#p223959</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22767&amp;p=223959#p223959"/>
<title type="html"><![CDATA[Re: Kompilacja warunkowa dołączanie bibliotek]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22767&amp;p=223959#p223959"><![CDATA[
<div class="quotetitle">mirekk36 napisał(a):</div><div class="quotecontent"><br /><div class="quotetitle">Rosto napisał(a):</div><div class="quotecontent">Można dodatkowo ułatwić sobie życie, używając jedno-plikowych bibliotek (składających się z samego nagłówka).<br /></div><br />W języku C nie tworzy się takich potworków.<br /></div><br />Oj tam, zaraz &quot;potworków&quot; <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /> <br /><br />Przyznaję, że nie jest to rozwiązanie dla początkujących, ale ta metoda jest dość popularna wśród programistów systemowych, zwłaszcza w Windows (np. biblioteki STB: <a href="https://github.com/nothings/stb"  class="postlink">https://github.com/nothings/stb</a>). Rozumiem, że pisanie pod mikro-kontrolery, ma swoje prawa, więc nie będę się wymądrzał, bo mam za mało doświadczenia w temacie.<br /><br />Co złego, to nie ja.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9827">Rosto</a> — 2 sty 2020, o 21:31</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2020-01-02T20:59:43+01:00</updated>
<published>2020-01-02T20:59:43+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22767&amp;p=223958#p223958</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22767&amp;p=223958#p223958"/>
<title type="html"><![CDATA[Re: Kompilacja warunkowa dołączanie bibliotek]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22767&amp;p=223958#p223958"><![CDATA[
<div class="quotetitle">Rosto napisał(a):</div><div class="quotecontent"><br />Zrobiłem test z dwiema bibliotekami, z których każda ustawia inne opóźnienie i wszystko działa prawidłowo. Zamiast słowa kluczowego #ifdefine, trzeba użyć #ifdef.<br /></div><br />To o czym tu piszesz dotyczy prawdziwych bibliotek czyli kompilowanych do postaci plików z rozszerzeniem *.a W tym wypadku ty piszesz właśnie o jednej z takich bibliotek tzw systemowych inkludowanych za pomocą nawiasów ostrych. I nie ma to za dużo wspólnego z inkludowaniem &quot;tak zwanych&quot; bibliotek. To jest tylko takie potoczne określenie, że np mamy bibliotekę do obsługi LCD czyli czyste żywe pliki *.c i *.h w jakimś tam własnym folderze, które są INKLUDOWANE za pomocą cudzysłowów i o tym pisze wyraźnie autor w pytaniu, podając przykład takiej ala &quot;biblioteki&quot;.<br /><br />Dalej niestety piszesz już hmmm troszkę dziwne rzeczy np:<br /><br /><div class="quotetitle">Rosto napisał(a):</div><div class="quotecontent"><br />Można dodatkowo ułatwić sobie życie, używając jedno-plikowych bibliotek (składających się z samego nagłówka).<br /></div><br /><br />W języku C nie tworzy się takich potworków.<br /><br /><div class="quotetitle">Rosto napisał(a):</div><div class="quotecontent"><br />Ma to swoje wady (np. nie można ukryć szczegółów implementacji),<br /></div><br />Ma to same wady a w większych projektach z wieloma plikami i folderami to po prostu istne szaleństwo jak chodzi o język C.<br /><br /><div class="quotetitle">Rosto napisał(a):</div><div class="quotecontent"><br />ale warto wiedzieć, że istnieje alternatywa.<br /></div><br />W związku z powyższym moim zdaniem warto wiedzieć, że to nie jest żadna alternatywa - tylko błędne posługiwanie się językiem C - niezgodnie z jego zasadami. Co szczególnie początkującym osobom może przynieść same kłopoty.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 2 sty 2020, o 20:59</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Rosto]]></name></author>
<updated>2020-01-02T19:09:53+01:00</updated>
<published>2020-01-02T19:09:53+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22767&amp;p=223957#p223957</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22767&amp;p=223957#p223957"/>
<title type="html"><![CDATA[Re: Kompilacja warunkowa dołączanie bibliotek]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22767&amp;p=223957#p223957"><![CDATA[
Zrobiłem test z dwiema bibliotekami, z których każda ustawia inne opóźnienie i wszystko działa prawidłowo. Zamiast słowa kluczowego <strong>#ifdefine</strong>, trzeba użyć <strong>#ifdef</strong>.<br /><br />Blok warunkowy wygląda tak:<br />[syntax=c]#include &lt;avr/io.h&gt;    <br />#include &lt;util/delay.h&gt;<br /><br />#define SHORT_DELAY    <br /><br />#ifdef SHORT_DELAY               <br />#include &quot;../Libs/delay200.h&quot;<br />#else<br />#include &quot;../Libs/delay1000.h&quot; <br />#endif[/syntax]<br /><br />Kompilacja przebiega prawidłowo, niezależnie od tego czy nagłówki bibliotek znajdują się w folderze projektu, czy w folderze zewnętrznym. Jeśli biblioteka jest w folderze zewnętrznym, powiązany z nią plik *.c musi być w tym samym folderze.<br /><br />Można dodatkowo ułatwić sobie życie, używając jedno-plikowych bibliotek (składających się z samego nagłówka). Ma to swoje wady (np. nie można ukryć szczegółów implementacji), ale warto wiedzieć, że istnieje alternatywa.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=9827">Rosto</a> — 2 sty 2020, o 19:09</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[mirekk36]]></name></author>
<updated>2019-12-31T11:27:12+01:00</updated>
<published>2019-12-31T11:27:12+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22767&amp;p=223911#p223911</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22767&amp;p=223911#p223911"/>
<title type="html"><![CDATA[Re: Kompilacja warunkowa dołączanie bibliotek]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22767&amp;p=223911#p223911"><![CDATA[
<div class="quotetitle">JarekB napisał(a):</div><div class="quotecontent"><br />ale chciałbym to zrobić za pomocą przełącznika<br /></div><br />ale wiesz - to że byś chciał to już insza inszość. Stwórcy C inaczej to wymyślili i niestety musisz się do tego po prostu dopasować programując w C.<br /><br />Krótko mówiąc - należy wyłączyć pliki *.c z kompilacji i to nie ważne czy MkClipse czy Eclipse czy AS. Stąd też taka opcja pojawiła się w trakcie rozwoju MkClipse - bo i takie potrzeby się pojawiły.<br /><br />A oczywiście tym co robisz za pomocą preprocesora to jak najbardziej też trzeba - żeby nie próbować przypadkiem dołączać plików nagłówkowych gdy pliki *.c są wyłączone. Więc i jedno i drugie musisz robić i nie ma że boli. A w sumie w MkClipse robi się to na prawdę wygodnie w miarę <img src="https://forum.atnel.pl/images/smilies/icon_e_wink.gif" alt=";)" title="Puszcza oko" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=54">mirekk36</a> — 31 gru 2019, o 11:27</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[JarekB]]></name></author>
<updated>2019-12-31T11:23:19+01:00</updated>
<published>2019-12-31T11:23:19+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=22767&amp;p=223910#p223910</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=22767&amp;p=223910#p223910"/>
<title type="html"><![CDATA[Kompilacja warunkowa dołączanie bibliotek]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=22767&amp;p=223910#p223910"><![CDATA[
Witajcie <br />Starając się ogarnąć kompilację warunkową napotkałem jedno zagadnienie z którym sobie nie poradziłem.<br />Tworząc w Mkclipsie projekt chciałem doprowadzić do kompilacji takiej która by wyeliminowała określone biblioteki.<br />To znaczy tak:<br />W projekcie dokopiowana jest na przykład biblioteka IR<br />Od razu projekt puchnie od obsługi przerwania które jest tam przygotowane.<br />Bez względu ma to czy cokolwiek robimy z tą biblioteką.<br /><br />Oczywiście można w MkClipse zaznaczyć żeby dana biblioteka nie uczestniczyła w kompilacji <br />ale chciałbym to zrobić za pomocą przełącznika [syntax=c]#ifdefine IR_LIBRARY<br />// dołącz bibliotekę<br />#endif[/syntax]<br /><br />Tak sobie pomyślałem że gdyby ta biblioteka była niżej głównego poziomu to może tak:<br /> [syntax=c]#ifdefine LCD_LIBRARY<br />#include &quot;../MK_LCD/mk_lcd44780.h&quot; <br />#endif[/syntax]Sprawdzę i się pochwalę. Albo dostanę po łapach<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=18188">JarekB</a> — 31 gru 2019, o 11:23</p><hr />
]]></content>
</entry>
</feed>