---
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'.<!--more-->

![|](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)

Сохраняем и спокойно работаем дальше :)