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

 
 
> ругань 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
Ответов (1 - 2)
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
vesel
сообщение Mar 6 2009, 21:36
Сообщение #3


Участник
*

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



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 ))
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 20th July 2025 - 14:03
Рейтинг@Mail.ru


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