Arduino - platnost #define
Miroslav Mraz
mrazik na volny.cz
Středa Květen 6 17:37:36 CEST 2020
V projektech, kde je potřebné aby to celé běhalo na různých platformách
se to obvykle řeší tak, že vytvoříte hlavičku s názvem např. config.h ve
které jsou všechny potřebné #define. Tuto hlavičku pak musíte vložit do
všech překládaných souborů *.c kde jsou závislosti na daných definicích.
Pro jinou platformu pak použijete jen jinou tuhle hlavičku (např. tím,
že ji máte v jiném adresáři). V komplikovanějších případech je pak tato
hlavička generována automaticky nějakým skriptem.
Celé to nepochopení pramení z toho, že lidi většinou používají IDE s
vlastním build systémem, který ve většině případů funguje bez vnějšího
zásahu, takže není nutné se starat o to jak to vlastně dělá.
Když pak chcete o něco složitější chování tak nevíte jak dál. Kdybyste
se naučil jak funguje ručně napsaný makefile, pochopíte jak přesně
probíhá překlad a linkování výsledku a můžete s tím dělat celkem psí kusy.
Mrazík
Dne 06. 05. 20 v 17:07 Pavel Kutina napsal(a):
> Priznam se, ze v tomhle porad plavu, takze mne to trochu prekvapilo, ale
> chapu, ze je to vlastnost.
>
> Projekt je to cizi, ktery si priohybam ke svemu HW, ale rad bych, aby to
> chodilo i s originalnim. Je tam docela hezka hromadka ruznych zavislosti
> a potreboval jsem udelat nejake zmeny v tech originalnich knihovnach
> nejak tak, aby se to dalo snad "prepnout", idealne jednim radkem v
> nektere casti meho kodu.
>
> V ramci toho Arduina to ted asi vyresim vlastne "korektne", napsanim
> definice pro muj HW, ale docela by mne zajimalo, jestli se to da nejakym
> zpusobem resit "legalne", tedy jedna direktiva (nebo neco takoveho)
> spolecna pro cely projekt.
>
> Diky, myslel jsem, ze to bude o chlup jednodussi :)
>
> Pavel Kutina
>
Další informace o konferenci Hw-list