vesel 0 6 марта, 2009 Опубликовано 6 марта, 2009 · Жалоба воть : static double aa,bb,cc,dd,ff; static char stroka[10]="12.6L",*ended; static char sout1[5]; static int jj; const double e2 = 0.006739496742337; static double gg; void progra(void) { //gg = strtod(stroka,&ended); // ругаетсо jj = round(ff); // работает jj = lrint(ff); // работает bb = 1-e2*(pow(sin(aa),2)); //работает } int main(void) { progra(); snprintf(sout1,4,"%f",gg); sprintf(sout1,"%f",gg); } участники праздника stdio.h math.h в Makefile указаны ключи -lc (-lm не работают математические функции) при раскоментарии strtod при компиляции выкидывает следующее... /usr/local/atmel/bin/avr-gcc -g -Wall -Os -mmcu=atmega128 -c -o probe.o probe.c /usr/local/atmel/bin/avr-gcc -g -Wall -Os -mmcu=atmega128 -Wl,-u,vfprintf -lprintf_flt -lgcc -lc -o probe.elf probe.o /usr/local/atmel/lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/libc.a(fp_powsodd.o):../../../libm/fplib/fp_powsodd.S:59: relocation truncated to fit: R_AVR_13_PCREL against symbol `__mulsf3' defined in .text section in /usr/local/atmel/lib/gcc/avr/3.4.6/avr5/libgcc.a(_mul_sf.o) /usr/local/atmel/lib/gcc/avr/3.4.6/../../../../avr/lib/avr5/libc.a(fp_powsodd.o):../../../libm/fplib/fp_powsodd.S:69: relocation truncated to fit: R_AVR_13_PCREL against symbol `__mulsf3' defined in .text section in /usr/local/atmel/lib/gcc/avr/3.4.6/avr5/libgcc.a(_mul_sf.o) make: *** [probe.elf] Error 1 да и вообще очень непонятно бывают себя ведут фунции sprintf .... кучу всего прошерстил ....основная мысль крутится возле теории неправильности указания порядка подключения либ... устал короче. собираю под линупсом ...gcc 3.4.6.... пробовал и под WinRarом ....та же песня ((( хотел попробовать под CodeVision ... но там упс .. нету кучи функций как то нормального округления,работы со строками ((( вспоможите люди добжие )) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aesok 0 6 марта, 2009 Опубликовано 6 марта, 2009 (изменено) · Жалоба кучу всего прошерстил ....основная мысль крутится возле теории неправильности указания порядка подключения либ... устал короче. Это не теория, это практика. -lm в конце командной строки линкера. > да и вообще очень непонятно бывают себя ведут фунции sprintf .... Читаем описание sprintf в avr-libc-user-manual. Анатолий. Изменено 6 марта, 2009 пользователем aesok Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vesel 0 6 марта, 2009 Опубликовано 6 марта, 2009 · Жалоба ex razobralso ))) -lc stavil ne tam ((( project compilolsa wmeste s jacOS i -lc propisivalsja ranshe vremeni...... deistvitelno kogda postavil -lc linkovshiky POSLEDNIM vse bolezni is4ezli ........ vnimatelnostb i es4e raz vnimatelnostb )) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться