реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Не устанавливается avr-libc
kurtis
сообщение May 11 2009, 10:53
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205



Пытаюсь собрать 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), этих библиотек там действительно нету.

Может кто-то сталкивался и подскажет в чем может быть проблема?
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение May 11 2009, 11:28
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(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 тоже.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
aesok
сообщение May 11 2009, 11:47
Сообщение #3


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Добавте '/usr/local/avr' в PATH.

Анатолий.
Go to the top of the page
 
+Quote Post
kurtis
сообщение May 11 2009, 13:51
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205



Спасибо что отозвались!

Цитата
Нет, он не может найти 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, там в одной из пришпиленных вверху тем есть скрипты для сборки.
Спасибо за наводку, сейчас именно так и поступлю.
Go to the top of the page
 
+Quote Post
aesok
сообщение May 11 2009, 16:21
Сообщение #5


Знающий
****

Группа: Участник
Сообщений: 596
Регистрация: 26-05-06
Из: Москва
Пользователь №: 17 484



Цитата(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?

Анатолий.
Go to the top of the page
 
+Quote Post
kurtis
сообщение May 11 2009, 17:04
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 466
Регистрация: 21-06-05
Пользователь №: 6 205



Спасибо, понял! =)
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 21st July 2025 - 07:56
Рейтинг@Mail.ru


Страница сгенерированна за 0.01397 секунд с 7
ELECTRONIX ©2004-2016