Перейти к содержанию
    

ругань math.h с другими либами ... где грабли?))

воть :

 

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 ... но там упс .. нету кучи функций как то нормального округления,работы со строками (((

вспоможите люди добжие ))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

кучу всего прошерстил ....основная мысль крутится возле теории неправильности указания порядка подключения либ... устал короче.

 

Это не теория, это практика. -lm в конце командной строки линкера.

 

> да и вообще очень непонятно бывают себя ведут фунции sprintf ....

 

Читаем описание sprintf в avr-libc-user-manual.

 

Анатолий.

Изменено пользователем aesok

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 ))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...