LINUX.ORG.RU

Не могу скомпилировать проект под AVR

 , ,


0

1

Здравствуйте, пытаюсь скомпилировать проект под MCU Atmega8 но при компиляции появляется ряд ошибок связанных с библиотекой util/delay.h.

||=== Build: Debug in 7seg (compiler: GNU GCC Compiler for AVR) ===|
obj/Debug/main.o||In function `main':|
/usr/avr/include/util/delay.h|| undefined reference to `__mulsf3'|
/usr/avr/include/util/delay.h|191|undefined reference to `__ltsf2'|
/usr/avr/include/util/delay.h|192|undefined reference to `__gtsf2'|
/usr/avr/include/util/delay.h|194|undefined reference to `__mulsf3'|
/usr/avr/include/util/delay.h|194|undefined reference to `__fixunssfsi'|
/usr/avr/include/util/delay.h|| undefined reference to `__fixunssfsi'|
||error: ld returned 1 exit status|
||=== Build failed: 7 error(s), 0 warning(s) (0 minute(s), 0 second(s)) ===|

А вот мой код, который я пытаюсь скомпилять.

#include <avr/io.h>
#include <util/delay.h>

void init()
{
    DDRC = 0xff;
    DDRD = 0xff;
}

int main(void)
{
    int num = 0xff;
    init();
    PORTC = 0x00;
    while (--num >= 0) {
        PORTD = num;
        _delay_ms(100);
    }
    return 0;
}

При этом если не использовать либу delay.h, то компилится нормально.

Работаю в IDE Code::Blocks. Дистрибутив ArchLinux, все необходимые пакеты (из официальных репов) для работы с AVR установленны.



Последнее исправление: unixwz (всего исправлений: 1)

нужна библиотека с этими символами

anonymous
()
Ответ на: комментарий от I-Love-Microsoft

Да при компиляции в самой команде задано, напрямую в коде нет, а если задать, то будет ошибка о том, что F_CPU переопределяется.

unixwz
() автор топика

Эти символы определены в libgcc, нужно -lgcc добавить линковщику.

anonymous
()

Кароче запилил я себе простенький makefile и всё нормально скомпилялось, нафиг эти IDE только усложняют всё. Всем спасибо.

unixwz
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.