[AvrGcc] WinAVR-20080610 problem z funkcjami inline

Witam, przesiadlem sie na winavr z wersji z 2006 roku i zaczely sie schody w trakcie kompilacji :( wszystkie f-cje inline sie sypia. Tam gdzie wywoluje te funkcje linker wywala mi ze funkcja jest zdeklarowana, ale niezdefiniowana ... Wywale slowo inline i wszystko gra i huczy ... Ki czort?

Reply to
Pawel K
Loading thread data ...

Pawel K pisze:

a c99+ gnu ustawione ?

Reply to
Raven

Raven pisze:

# gnu99 = c99 plus GCC extensions CSTANDARD = -std=gnu99

plik z f-cjami inline kompiluje sie bezblednie jak widac:

Compiling C: dev/ads1110.c avr-gcc -c -mmcu=atmega128 -I. -gdwarf-2 -DF_CPU=14745600UL -DV2 -Os -I include -I include/dev -I include/menu -funsigned-char

-funsigned-bitfields -fpack-struct -fshort-enums -Wstrict-prototypes

-Wundef -Wa,-adhlns=obj/dev/ads1110.lst -Ic:\code\avr\avrlib -std=gnu99

-MD -MP -MF .dep/ads1110.o.d dev/ads1110.c -o obj/dev/ads1110.o

plik w ktorym wywoluje funkcje inline w trakcie kompilacji wywala takie bledy:

include/dev/ads1110.h:6: warning: inline function 'ads1110_Convert_IN' declared but never defined include/dev/ads1110.h:5: warning: inline function 'ads1110_Convert' declared but never defined include/dev/ads1110.h:6: warning: inline function 'ads1110_Convert_IN' declared but never defined include/dev/ads1110.h:5: warning: inline function 'ads1110_Convert' declared but never defined

w czym moze byc problem? ktory powstal w nowej wersji ...

Reply to
Pawel K

Pawel K pisze:

Wygląda tak, jakbyś zapomniał o "static". Poprawnie powinno być w pliku .h na przykład:

static inline int funkcja (int param1) { return param1 * 5; }

Jeżeli chcesz wymusić, aby funkcja zawsze była inline (normalnie może się zdarzyć, że jakaś duża funkcja static inline wywoływana wiele razy będzie umieszczona w kodzie tylko raz gdy optymalizujesz na zajętość pamięci kodu), można dodać always_inline to w atrybutach funkcji.

Reply to
Adam Dybkowski

A mógłbyś jeszcze tak w 3 słowach wyjaśnić, co oznacza static dla funkcji inline?? Bo co dla zmiennej lokalnej - to wiem :)... ma stałe miejsce w RAMie... a dla funkcji - już nie :/...

Pozdrawiam Konop

Reply to
Konop

In the darkest hour on Fri, 12 Sep 2008 01:36:32 +0200, Konop snipped-for-privacy@gazeta.pl screamed:

formatting link

Reply to
Artur M. Piwko

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.