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