42 lines
1.6 KiB
Markdown
42 lines
1.6 KiB
Markdown
|
---
|
|||
|
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)
|
|||
|
|
|||
|
Сохраняем и спокойно работаем дальше :)
|