реклама на сайте
подробности

 
 
> ругань math.h с другими либами ... где грабли?))
vesel
сообщение Mar 6 2009, 09:48
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 33
Регистрация: 14-04-08
Из: Saint-Petersburg
Пользователь №: 36 741



воть :

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 ... но там упс .. нету кучи функций как то нормального округления,работы со строками (((
вспоможите люди добжие ))
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
aesok
сообщение Mar 6 2009, 10:37
Сообщение #2


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(vesel @ Mar 6 2009, 12:48) *
кучу всего прошерстил ....основная мысль крутится возле теории неправильности указания порядка подключения либ... устал короче.


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

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

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

Анатолий.

Сообщение отредактировал aesok - Mar 6 2009, 10:38
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 06:36
Рейтинг@Mail.ru


Страница сгенерированна за 0.01356 секунд с 7
ELECTRONIX ©2004-2016