Мне нравится Code::Blocks. Замечательная IDE, которая умеет всё. И вот сравнительно недавно начал использовать эту среду для написания программ для AVR. Всё шло замечательно, но стоило лишь использовать sprintf, программа перестала компилироваться, линковщик выдавал ошибку undefined reference to `__mulqi3'.
После гуглений оказалось, что автонаходитель тулчейна работает немного некорректно. Что ж, идём исправлять. Открываем настройки компиляторов.
Выбираем GNU GCC Compiler for AVR.
Открываем вкладку Search directories, в ней вкладку Linker.
И удаляем суффикс avr в пути.
Например,
было d:\_compilers\avr8-gnu-toolchain\avr\lib
стало d:\_compilers\avr8-gnu-toolchain\lib
Те же манипуляции производим с вкладкой Compiler.
Сохраняем и спокойно работаем дальше :)