C - redukce kodu v direktivach kompileru

Pavel Kutina hw na prelude.cz
Čtvrtek Září 5 22:32:47 CEST 2019


Já bych to tak nehrotil :) Primárně mi šlo o to, najít nějaký přepínač, 
který by řekl gcc, že po sobě nemá uklízet, abych si mohl projít, z čeho že 
se vlastně kompilovalo a jak vypadá kód. To s -E se mi zatím nepodařilo 
rozběhnout (ani nevím, jestli to tu mám vůbec říkat - Arduino IDE s stm32, 
tam pro mne není úplně triviální vnutit gcc cokoliv - to bude rukama), ale 
ať už budou makra přeložená nebo ne je mi zatím celkem jedno, potřebuju 
hlavně pochopit větvení kódu u cizího, docela rozsáhle konfigurovatelného 
projektu.

Každopádně díky za inspiraci, pohraju si s tím asi až přes víkend - teď mám 
maličko jinou zábavu, viz následující mail.

Pavel Kutina





----- Original Message ----- 
From: "Miroslav Mraz" <mrazik na volny.cz>
To: <hw-list na list.hw.cz>
Sent: Wednesday, September 04, 2019 5:56 PM
Subject: Re: C - redukce kodu v direktivach kompileru


> Je to o dost složitější. IDE nevidí především makra definovaná přímo 
> kompilerem - a na těch obvykle bývá dost závislých věcí. U dobrého IDE se 
> to dá nastavit, stejně tak některá IDE umí i načíst makra z makefile. Ale 
> není na to spolehnutí. Vygenerovat si pomocný soubor pomocí přepínače -E 
> je spolehlivější, ale musíte zároveň i použít ostatní flagy kompilace. 
> Protože některé flagy -fxxx, -mxxx mohou dost změnit vnitřní makra 
> kompileru.
> příklad
> $ gcc -dM -E - < /dev/null | grep SIZE_T
> #define __SIZEOF_SIZE_T__ 8
> #define __SIZE_TYPE__ long unsigned int
>
> $ gcc -m32 -dM -E - < /dev/null | grep SIZE_T
> #define __SIZEOF_SIZE_T__ 4
> #define __SIZE_TYPE__ unsigned int
>
>
> Mrazík
>
> Dne 04. 09. 19 v 13:45 Miro su napsal(a):
>> Pri IDE moze byt problem ze niektore define nevidi. Napr. z makefile.
>>
>> Miro
>>
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
> 



Další informace o konferenci Hw-list