Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Сборка skyeye
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
injen-d
Так и не удалось нагуглить четкий пример для сабж.
Прошу помощи у тех, кто уже это (сабж) делал, ну или знает как это делается.
Сразу скажу, что в линуксе я полный ноль. И все, что внутри Cygwin - темный лес.

Скачал архив с исходниками skyeye.
Скачал и установил Cygwin.
Скачал и установил MinGW.

Так и не понял где "правильное" место для размещения исходников, пробовал разные варианты, остановился на F:/cygwin/home/user_name/

Далее по инструкции:
1. в консоли Cygwin запустил скрипт configure (сначала пробовал запускать без дополнительных опций). Конфигурация прошла, создались мэйкфайлы и др.
2. ввожу: make lib
в результате:

bash.exe: warning: could not find /tmp, please create!
bash.exe: warning: could not find /tmp, please create!
configure: error: expected an absolute directory name for --prefix: 0

Поскольку весь процесс для меня очень мутный и непонятный, не пойму какой абсолютный путь надо задать в --prefix ? Путь куда?
mdmitry
Такие пакеты имеют полную документацию по установке. Читаете сначала README, далее INSTALL и т.д.
Цитата
Сразу скажу, что в линуксе я полный ноль. И все, что внутри Cygwin - темный лес.

Не имея представлений об организации linux очень тяжело получить результат. Под linux'ом такие пакеты в архивах собираются (при наличии необходимого ПО) очень быстро. По минимуму как-то так:
./configure
make
make install

иногда приходиться делать make all явно.
klen
bash почти русским языко пишен - "немогу найти /tmp"

создайте в корне установочной директоии папку tmp

при компиялции GCC генерит промежуточные файлы, их ему кудвто надо ложить. а у Вас ему видимо некуда их сунуть и все затыкается. Я так вообще tmp в ОЗУ монтирую с помощью RamDisk (http://members.fortunecity.com/ramdisk/RAMDisk/ramdiskfree.htm), тем самым увеличивая скорость но это к вопросу не относится.

пишите результат. ставте свежий MSYS + MINGW - дале помогу. можно мою сборку - у меня все заоаботает сразу. ну тоесть компилировать начнет.

предостережения.
если пакет писался с заделом мультиплатформенности то обычно из исходников с помощью MinGW собирется работоспособная программа. это благоприятная ситуация.
если всетаки код сильно юниксовый ( например используются вызовы fork() select() тд чего нет в Win API) то тут уже придется по принуждению - Cygwin - он эмулирует эти вызовы, иногда очень хитроумно кстати, подумайте например про fork().

как то так...
injen-d
Цитата(klen @ Mar 9 2010, 22:59) *
как то так...

Спасибо, что откликнулись.

Итак, порядку:
Как я уже писал
Цитата
Скачал архив с исходниками skyeye.
Скачал и установил Cygwin.
Скачал и установил MinGW.

все самые последние версии на сегодня.

CygWin установил в F:/Cygwin
MinGW установил в F:/MinGW

архив skyeye содержит собственно исходники и плагин для Eclipse.
распаковал исходники в F:/skyeye
Вот файл Нажмите для просмотра прикрепленного файла из исходников.

Цитата
если всетаки код сильно юниксовый ( например используются вызовы fork() select()
да fork() select() присутствуют в исходниках в больших количествах.

запускаю консоль Cygwin;
захожу в директорию skyeye:
cd F:/skyeye
запускаю скрипт:
./configure
около минуты выполняется скрипт, ошибок нет. Далее как описано в файле INSTALL:
make lib
в результате:
Почему-то не был создан Makefile для сборки библиотек, при том, что остальные мэйкфайлы, в том числе в F:\skyeye\arch\arm были созданы.

Правильно ли я понял, установочная директория - это место, куда будет помещен результат компиляции? Спрашиваю так... чтоб развеять сомнения...
Папки tmp создал уже везде, куда только руки дотянулись, в том числе в установочной директории. Все равно не может найти. Где же, черт возьми, он ее ищет?
Пробовал с помощью --prefix задавать другие директории - ошибка та же.
klen
сделай директорию F:/Cygwin/tmp
injen-d
Цитата(klen @ Mar 11 2010, 03:55) *
сделай директорию F:/Cygwin/tmp

Папка tmp там присутствует изначально, но это уже не имеет значения, так как я уже нашел причину этой ошибки и продвинулся дальше.
Ошибка была из-за того, что вызывалась утилита make не из MinGW, а из вашей, klen, сборки GCC для ARM, а "ваша" make не умеет запускать скрипты.
На картинке из моего предыдущего поста видно, что по команде make lib, происходит заход в директорию skyeye/third-party/libiberty/, а затем происходит попытка запустить скрипт: ./configure
В общем, после удаления из path путей ко всем "ненужным" компиляторам, все заработало.
По команде make lib крипт configure из директории skyeye/third-party/libiberty/ запустился и отработал, началась компиляция, затем вывалилась ошибка (картинка прилагается).

Разбираюсь...
klen
дело не в моем make, он все как раз может запускать, это его основное назначение кроме парсинга ''целей". Вы все в кучу перемешали. я попробую собрать skeye и если получится то сюда отпишусь
injen-d
На данный момент продвинулся очень далеко.
Просто скачал Cygwin с его "родной" версией GCC, плюс некоторые потребовавшиеся библиотеки (по-умолчанию Cygwin качается в минимальной конфигурации).
Библиотеки собираются.
Пытаюсь собрать версию только для ARM, вроде все компилится.
После "make install" ошибок нет, но почему-то не создается исполняемый файл (*.exe) подозреваю, что для этого нужно собрать вообще все, но для этого у меня не хватает QT (много весит зараза, а интернет у меня не быстрый и дорогой).
В ближайшие дни что-нибудь придумаю.
mdmitry
Под debian 5.0.4 lenny пакет с ходу не собирается. Библиотека без проблем, а само приложение нет, ошибка при сборке. Времени разбираться, что не нравиться при сборке нет. Скорее всего и под win проблемы будут.
injen-d
Цитата
Под debian 5.0.4 lenny пакет с ходу не собирается. Библиотека без проблем, а само приложение нет, ошибка при сборке...
Так и есть!
Выловил уже 3 ошибки. Одна ошибка в файле configure, остальные в исходниках. В основном не подключены нужные хидеры.
На данный момент требует файл sys/stropts.h, но он отсутствует даже в полной версии Cygwin.
Подробнее об ошибках напишу после победы. Не теряю надежды...
dimka76
Цитата(injen-d @ Mar 16 2010, 17:49) *
Подробнее об ошибках напишу после победы. Не теряю надежды...


День победы еще не наступил?
injen-d
Нет. И, думаю, уже не наступит.
Да и не нужно уже.
Очень много времени я убил на это чудо, справляюсь с одними ошибками - появляются новые и т.д. Не специалист я в этой области, а может не только во мне дело...
Если кто справится - тому респект и уважуха,
а я умываю руки.
Yra
... а у меня под linux mandriva 2010.0 собралось из исходников...(версия 1.3.0)

./configure --prefix=/usr/local/skyeye
make lib
make
su
passwd
make install_lib
make install

но заработало странно :
на запрос
(skyeye)list-machines
Machine Name !!!!!ЗДЕСЬ ДОЛЖЕН БЫТЬ СПИСОК ПЛАТФОРОМ !!! НЕТУ НИ ОДНОЙ ПЛАТФОРМЫ !!!
(skyeye)

.... смешно: в дистрибутивв linux mandriva 2010.1 уже включено skyeye 1.3.0.

в моем же mandriva 2010.0 толко 1.2.8, а оно отличается : примеры не пошли почемуто.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.