Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Не устанавливается avr-libc
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
kurtis
Пытаюсь собрать toolchain для AVR под Ubuntu 9.04.
Версия собираемых програм GCC-4.4.0, Binutils-2.19.51, Avr-libc-1.6.6.
Собирается этом все с помощью GCC 4.3.3 (Ubuntu 4.3.3-5ubuntu4), binutils 2.19.1-0ubuntu3.

GCC и Binutils компилируются и устанавливаются нормально, Avr-libc компилируется нормально, но устанавливаться (sudo make install) не хочет.
Avr-libc собираю следующими командами
Код
./configure --host=avr --prefix=/usr/local/avr
make
sudo make install
Первые 2 шага проходят без ошибок, но последнем шаге вылазит непонятная ошибка
Цитата
avr-ranlib '/usr/local/avr/avr/lib//libc.a'
/bin/bash: line 4: avr-ranlib: команда не найдена
avr-ranlib '/usr/local/avr/avr/lib//libprintf_min.a'
/bin/bash: line 4: avr-ranlib: команда не найдена
avr-ranlib '/usr/local/avr/avr/lib//libprintf_flt.a'
/bin/bash: line 4: avr-ranlib: команда не найдена
avr-ranlib '/usr/local/avr/avr/lib//libscanf_min.a'
/bin/bash: line 4: avr-ranlib: команда не найдена
avr-ranlib '/usr/local/avr/avr/lib//libscanf_flt.a'
/bin/bash: line 4: avr-ranlib: команда не найдена
avr-ranlib '/usr/local/avr/avr/lib//libm.a'
/bin/bash: line 4: avr-ranlib: команда не найдена
make[5]: *** [install-avrLIBRARIES] Ошибка 127
make[5]: Выход из каталога `/home/mike/src/avr-libc-1.6.6/avr/lib/avr2'
make[4]: *** [install-am] Ошибка 2
make[4]: Выход из каталога `/home/mike/src/avr-libc-1.6.6/avr/lib/avr2'
make[3]: *** [install-recursive] Ошибка 1
make[3]: Выход из каталога `/home/mike/src/avr-libc-1.6.6/avr/lib/avr2'
make[2]: *** [install-recursive] Ошибка 1
make[2]: Выход из каталога `/home/mike/src/avr-libc-1.6.6/avr/lib'
make[1]: *** [install-recursive] Ошибка 1
make[1]: Выход из каталога `/home/mike/src/avr-libc-1.6.6/avr'
make: *** [install-recursive] Ошибка 1

Насколько я понял, оно не может найти путь к библиотеке. Т.е. в путе к библиотеке образовался двойной слеш ("//"). Насколько я понял, между ними должно быть имя семейства АВРок (avr2, avr5 и тд) но его почему-то нету. К тому-же я проверил путь (/usr/local/avr/avr/lib), этих библиотек там действительно нету.

Может кто-то сталкивался и подскажет в чем может быть проблема?
Сергей Борщ
Цитата(kurtis @ May 11 2009, 13:53) *
Насколько я понял, оно не может найти путь к библиотеке.
Нет, он не может найти avr-ranlib. Что это и в каком пакете идет - гугль в помощь. Двойной слеш в путях не криминален.
Цитата(kurtis @ May 11 2009, 13:53) *
Насколько я понял, между ними должно быть имя семейства АВРок (avr2, avr5 и тд) но его почему-то нету. К тому-же я проверил путь (/usr/local/avr/avr/lib), этих библиотек там действительно нету.
Зайдите на форум avr-gcc на avrfreaks, там в одной из пришпиленных вверху тем есть скрипты для сборки. Посмотрите их как пример. Есть подозрение, что надо gcc конфигурить с --enable-multilib, возможно и avr-libc тоже.
aesok
Добавте '/usr/local/avr' в PATH.

Анатолий.
kurtis
Спасибо что отозвались!

Цитата
Нет, он не может найти avr-ranlib.
да в том то и проблема что avr-ranlib есть, и системе он "виден"
Код
mike@myHome:~/src/avr-libc-1.6.6$ avr-ranlib -v
GNU ranlib (GNU Binutils) 2.19.51.20090510
Copyright 2008 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or (at your option) any later version.
This program has absolutely no warranty.
mike@myHome:~/src/avr-libc-1.6.6$ which avr-gcc
/usr/local/avr/bin/avr-gcc
mike@myHome:~/src/avr-libc-1.6.6$ which avr-ranlib
/usr/local/avr/bin/avr-ranlib


Цитата
Добавте '/usr/local/avr' в PATH.
Изначально оно там было.
Код
mike@myHome:~/src/avr-libc-1.6.6$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/avr/bin:/usr/local/avr

где-то в интернетах вычитал что можно попробовать добавлять пути так
Код
export PATH=/usr/local/avr:$PATH
т.е. в самом начае идет требуемый путь. Некоторые писали что им это помогло. Так же пробовал запускать последнюю команду установки таким вот образом
Код
RANLIB=/usr/local/avr/bin/avr-ranlib sudo make install
Пробовал делать RANLIB переменной среды (т.е. добавлять через export) - не помогло. Попробовал взять версию Avr-libc индексом ниже - ситуация аналогичная.
По идее сами GCC и binutils собрались правильно:
CODE
mike@myHome:~/src/temp$ echo 'main(){}' > dummy.c
mike@myHome:~/src/temp$ avr-gcc dummy.c
mike@myHome:~/src/temp$ avr-gcc -S dummy.c
mike@myHome:~/src/temp$ avr-objdump -h a.out

a.out: file format elf32-avr

Sections:
Idx Name Size VMA LMA File off Algn
0 .text 00000066 00000000 00000000 00000054 2**1
CONTENTS, ALLOC, LOAD, READONLY, CODE
1 .stab 000006b4 00000000 00000000 000000bc 2**2
CONTENTS, READONLY, DEBUGGING
2 .stabstr 00000054 00000000 00000000 00000770 2**0
CONTENTS, READONLY, DEBUGGING
mike@myHome:~/src/temp$ cat dummy.s
.file "dummy.c"
__SREG__ = 0x3f
__SP_H__ = 0x3e
__SP_L__ = 0x3d
__tmp_reg__ = 0
__zero_reg__ = 1
.global __do_copy_data
.global __do_clear_bss
.text
.global main
.type main, @function
main:
push r29
push r28
in r28,__SP_L__
in r29,__SP_H__
/* prologue: function */
/* frame size = 0 */
/* epilogue start */
pop r28
pop r29
ret
.size main, .-main

Цитата
Зайдите на форум avr-gcc на avrfreaks, там в одной из пришпиленных вверху тем есть скрипты для сборки.
Спасибо за наводку, сейчас именно так и поступлю.
aesok
Цитата(kurtis @ May 11 2009, 17:51) *
Изначально оно там было.
Код
mike@myHome:~/src/avr-libc-1.6.6$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/avr/bin:/usr/local/avr


Это чей PATH? mike?

Цитата
Код
./configure --host=avr --prefix=/usr/local/avr
make
sudo make install


А make install от чего имени запускается? От root? В PATH root-а есть /usr/local/avr?

Анатолий.
kurtis
Спасибо, понял! =)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.