mmote.ru/content/posts/codeblocks-avr-linker-error/index.md

42 lines
1.6 KiB
Markdown
Raw Normal View History

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