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