Неопределенная ссылка на __mulhi3 при использовании sprintf () - AVR GCC в Code :: Blocks в Windows - PullRequest
0 голосов
/ 22 сентября 2018

Я использую Code :: Blocks с набором инструментов AVR-GCC от Microchip (Atmel).Я пытаюсь скомпилировать программу для Atmega32.Я получаю «неопределенную ссылку на __mulhi3», когда пытаюсь скомпилировать программу, которая использует функцию sprintf().Без этой функции я не получаю ошибки.Та же программа, скомпилированная в Atmel Studio или в Code :: Blocks под Linux, работает нормально.

#include <avr/io.h>
#include <stdio.h>

int main(void)
{
    char buf[20];
    sprintf(buf, "Hello %d", 1);

    while(1);
    return 0;
}

1 Ответ

0 голосов
/ 22 сентября 2018

Проблема вызвана настройками по умолчанию Code :: Blocks для GNU GCC Compiler for AVR - нет необходимости включать пути к C:/WinAVR/avr/lib.Вы должны перейти к

Настройки → Компилятор ... → Компилятор GNU GCC для AVR → Директории поиска → Линкер

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

...