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

 
 
> GNUARM и плавающая точка, не линкуется проект
Fish
сообщение Jun 7 2006, 04:35
Сообщение #1


Участник
*

Группа: Новичок
Сообщений: 30
Регистрация: 7-07-04
Из: Novosibirsk
Пользователь №: 281



Предыстория:
Установил GCC-4.1 toolchain для Cygwin, изучаю новую для себя среду разработки.
Этап "Hello world!" прошел успешно. Решил собрать тест с плавающей точкой, в котором присутствует вот такая функция:
Код
float foo(float a)
{
    a += 40.0;
    return (a * 2.1);
}

Я прочел, что функции для работы с плавающей точкой имеются в библиотеке libgcc.a. Но, первым делом я запутался в какой директории ее искать? Из какого бы места я не пробовал бы ее подлинковать, получаю такое сообщение линковщика:
Код
"C:/Program files/GNUARM"/bin/arm-elf-ld -L"C:/Program files/GNUARM"/lib/gcc/arm-elf/4.1.0/interwork -lgcc -Map D:/Projects/test1/Debug/list/test1.map -TD:/Projects/test1/src/linker.ld D:/Projects/test1/Debug/obj/main.o D:/Projects/test1/Debug/obj/crt.o -o D:/Projects/test1/Debug/bin/test1.out
D:/Projects/test1/Debug/obj/main.o: In function `foo':
D:/Projects/test1/src/main.c:155: undefined reference to `__addsf3'
D:/Projects/test1/src/main.c:156: undefined reference to `__extendsfdf2'
D:/Projects/test1/src/main.c:156: undefined reference to `__muldf3'
D:/Projects/test1/src/main.c:156: undefined reference to `__truncdfsf2'
gnumake: *** [test1.out] Error 1

Причем в map-файле вижу следующее:
Код
Linker script and memory map

LOAD C:/Program files/GNUARM/lib/gcc/arm-elf/4.1.0/interwork/libgcc.a
                0x00000000                ROMSTART = 0x0
                0x00010000                ROMSIZE = 0x10000
-------------вырезано---------------
startup
*(.startup)

.text           0x00000000      0x794
*(.text)
.text          0x00000000      0x6a0 D:/Projects/test1/Debug/obj/main.o
                0x0000040c                put
                0x0000068c                UNDEF_handler
                0x0000049c                print
                0x00000000                InitHW
                0x00000254                DAC_setup
                0x00000678                SWI_handler
                0x00000664                FIQ_handler
                0x0000060c                IRQ_handler
                0x000001b0                UART0_setup
                0x00000284                ADC_setup
                0x0000015c                InitVIC
                0x000005b0                AD0_ISR
                0x00000354                T1_setup
                0x00000560                main
                0x000004e8                foo
                0x000005a0                DefDummyInterrupt
.text          0x000006a0       0xe0 D:/Projects/test1/Debug/obj/crt.o
                0x000006a0                _startup
*(.rodata)
.rodata        0x00000780       0x14 D:/Projects/test1/Debug/obj/main.o
*(.rodata*)
*(.glue_7)
*(.glue_7t)
                0x00000794                _etext = .

.data           0x40000200        0x0 load address 0x00000794
                0x40000200                _data = .
*(.data)
                0x40000200                _edata = .

.bss            0x40000200        0x0
                0x40000200                _bss_start = .
*(.bss)
                0x40000200                . = ALIGN (0x4)
                0x40000200                _bss_end = .
                0x40000200                _end = .

Многоуважаемые, где грабли? Я в растерянности... help.gif
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd July 2025 - 16:31
Рейтинг@Mail.ru


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