--- title: "Избавляемся от undefined reference to `__mulqi3' в Code::Blocks" categories: ["cpp", "archive"] date: 2016-11-29T00:00:00+03:00 draft: false featured_image: miniature.jpg --- Мне нравится Code::Blocks. Замечательная IDE, которая умеет всё. И вот сравнительно недавно начал использовать эту среду для написания программ для AVR. Всё шло замечательно, но стоило лишь использовать sprintf, программа перестала компилироваться, линковщик выдавал ошибку undefined reference to `__mulqi3'. ![|](cb_error.png) После гуглений оказалось, что автонаходитель тулчейна работает немного некорректно. Что ж, идём исправлять. Открываем настройки компиляторов. ![|](cb_options.png) Выбираем **GNU GCC Compiler for AVR**. ![|](cb_compilerselect.png) Открываем вкладку Search **directories**, в ней вкладку **Linker**. ![|](cb_libset1.png) И удаляем суффикс avr в пути. Например, было `d:\_compilers\avr8-gnu-toolchain\avr\lib` стало `d:\_compilers\avr8-gnu-toolchain\lib` ![|](cb_libset.png) ![|](cb_libset2.png) Те же манипуляции производим с вкладкой **Compiler**. ![|](cb_includeset.png) Сохраняем и спокойно работаем дальше :)