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?
[AvrGcc] WinAVR-20080610 problem z funkcjami inline
Sep 11, 2008
6 Replies
Pawel K pisze:
a c99+ gnu ustawione ?
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 ...
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.
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
In the darkest hour on Fri, 12 Sep 2008 01:36:32 +0200, Konop snipped-for-privacy@gazeta.pl screamed:
formatting link
Join the Discussion
Have something to add? Share your thoughts — no account required.
Didn't find your answer?
Ask the community — no account required