|
BusyBox для чайника |
|
|
|
Oct 30 2008, 04:42
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
В общем, придумал я себе новую, весьма интересную задачу - разработку приложения "Hello world" для какого-нибудь 32-битного проца. К которой давно присматривался, но все никак не хватало смелости. Но надо же когда-то начинать). Поскольку знаний примерно ноль, процесс пойдет мучительно, на что не обращайте внимания. Из каких-то смутных соображений выбран cygwin http://cygwin.com/ для среды разработки, macraigor http://www.macraigor.com/full_gnu.htm для компиляторов и отладчиков, и busybox http://busybox.net/ в качестве платформы для моего приложения, исходники которого я уже украл отсюда http://busybox.net/~landley/ols2006. Конечно, м.б. есть более простой путь для любителя Windows, но я его пока не нашел. А пока все это скачивается-перекачивается, появилась первая затыка - cygwin не запускается, вываливается с сообщением "cygintl-8.dll не был найден". Cygwin с дефолтовыми установками сначала скачивался на локальный диск, а затем устанавливался. Сейчас решил перезалить полную версию - может быть это поможет.
|
|
|
|
|
 |
Ответов
|
Nov 1 2008, 18:13
|

Частый гость
 
Группа: Участник
Сообщений: 163
Регистрация: 8-09-06
Из: Россия, Челябинская область
Пользователь №: 20 187

|
Цитата(Огурцов @ Oct 30 2008, 09:42)  Конечно, м.б. есть более простой путь для любителя Windows, но я его пока не нашел. Попробуйте связку Windows + QEMU (если планируете писать "Hello, World" не только для x86 платформ ) + Linux (на виртуальной машине под QEMU + BusyBox там же). Или Windows + VirtualBox (или VMware Workstation или VMware Server) + Linux (на виртуальной машине + BusyBox там же). --- С такими вещами, как busybox, по-моему, лучше разбираться и работать в их родной среде -- Linux --> *nix. Может, поначалу, всё покажется сложным и непривычным. Но "оно того стоит".
--------------------
do ut des
|
|
|
|
|
Nov 5 2008, 09:35
|

Начинающий профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648

|
Цитата(Огурцов @ Nov 2 2008, 05:06)  Вот тут подсказали, что GCC в Ubuntu есть. Он и правда запускается, хотя файло я не нашел. Наверно так же, как и с пингом и трейсроутом - файло отсутствует, а пинговать можно. Шаманы. Изучите содержимое каталогов: /bin; /usr/bin; /sbin, есть еще интересные каталоги. Шаманство пройдет. Документация по GCC вполне достаточная для работы. Полезно прочитать руководство по make. Для KDE среда разработки Kdevelop часто используется.
--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
|
|
|
|
|
Nov 5 2008, 17:51
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Против шаманства нужно было установить пакет build-essential. Mono тоже с бубном устанавливался - на сайте в хелпе sudo apt-get install monodevelop, а в реале - mono mono-gmcs mono-gac mono-utils monodevelop monodoc-browser monodevelop-nunit monodevelop-versioncontrol Вот еще пара линков, как его ставить: http://www.mono-project.com/Other_Download...cial_Packages_2http://directhex.mfgames.com/hardy.htmlЕще одно IDE: http://www.eclipse.org/ - вроде бы ничотак, но тормозит. И пока только жаба. Как подключить C++, а тем более дргие платформы еще не понял. Другими словами, сейчас компилится и пущается _из под IDE_ GCC, C#, JAVA. Но есть затыка. Как в линухе запускают приложения с консоли ? Т.е. получился, например, файл demo (тип исполняемый) в каталоге demo/bin/Debug с атрибутами -rwxr-xr-x 1 username username 7203 дата время. Какое нужно заклятие, чтобы он запустился ?
|
|
|
|
|
Nov 5 2008, 18:14
|

Начинающий профессионал
    
Группа: Свой
Сообщений: 1 215
Регистрация: 25-10-06
Из: СПб
Пользователь №: 21 648

|
Цитата(Огурцов @ Nov 5 2008, 20:51)  Еще одно IDE: http://www.eclipse.org/ - вроде бы ничотак, но тормозит. И пока только жаба. Как подключить C++, а тем более дргие платформы еще не понял. Есть ветка GNU, Eclipse и др., где Eclipse обсуждается. Прикручивается любой компилятор с помощью makefile. Цитата Другими словами, сейчас компилится и пущается _из под IDE_ GCC, C#, JAVA. Как в линухе запускают приложения с консоли ? Т.е. получился, например, файл demo (тип исполняемый) в каталоге demo/bin/Debug с атрибутами -rwxr-xr-x 1 username username 7203 дата время. Какое нужно заклятие, чтобы он запустился ? Атрибуты файла можно выставить через makefile. В нем можно указать необходимые команды для обработки. ./demo - запуск из текущего каталога, но надо иметь права на запуск у пользователя. В общем любая книга по Linux/Unix в помощь. (или RTFM  )
--------------------
Наука изощряет ум; ученье вострит память. Козьма Прутков
|
|
|
|
|
Nov 5 2008, 18:37
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Цитата(mdmitry @ Nov 5 2008, 18:14)  ./demo - запуск из текущего каталога, но надо иметь права на запуск у пользователя. О! Персональное спасибо! Буду сегодня спать спокойно - сабж заработал. Полдела сделано. Теперь начинается вторая половина - чтобы оно заработало на таргете. Цитата(mdmitry @ Nov 5 2008, 18:14)  В общем любая книга по Linux/Unix в помощь. (или RTFM  ) RTFM - как много в этом звуке...
Сообщение отредактировал Огурцов - Nov 5 2008, 18:38
|
|
|
|
|
Nov 10 2008, 18:57
|
Гуру
     
Группа: Участник
Сообщений: 3 928
Регистрация: 28-03-07
Из: РФ
Пользователь №: 26 588

|
Hello World в Cygwin http://www.e-zine.excode.ru/online/2/cygwi...in_windows.htmlБитва продолжается: Цитата $ ./gcc.exe hello_world.c -o hello_world.exe gcc: error trying to exec 'cc1': execvp: No such file or directory Вообще, cc1.exe есть, но в другой папке - нужно наверно как-то конфигурировать. В makefile`ах такого параметра (еще) не видел.
|
|
|
|
|
Nov 12 2008, 12:32
|
Знающий
   
Группа: Свой
Сообщений: 601
Регистрация: 22-09-05
Из: Kharkov
Пользователь №: 8 847

|
Цитата(Огурцов @ Nov 12 2008, 12:18)  Заменил оригинальные файлы на кроссовые - gcc уже работает. Не работает ld:
Интересно, что crti.o вообще нет никакого в cygwin, хотя поставил вроде бы весь. Нашел его в баунти-8.0.4, но он, вероятно, для i386. Нашел crti.S в uClibc, как собриать - не известно, под cygwin (уже?) не собирается. Боюсь, Вы вообще не туда копаете. Для компиляции программы gcc нужны ВСЕ ЕГО части + GLIBC для той-же платформы (это как минимум) Под чем компилировать - вопрос отдельный, но не забывайте, что cygwin - это ЭМУЛЯТОР unix environment и он, естественно хуже чем unix. В том числе и Linux. Если хотите программу под Windows/Cygwin - используйте то, что идет в самом Cygwin. Часто в Cygwin идут еще и MinGW. Иногда они конфликтуют. Если хотите программу под, скажем, ARM9 Linux, то Вам НУЖЕН ПОЛНЫЙ кросскомпилятор GCC + GLIBC для ЭТОЙ платформы. Он как правило имеет имя arm-linux-gcc, или arm-unknown-linux-gcc, или arm-uclibc-linux-gcc и тп. Вместо GLIBC можно использовать uClibc или newlib. Файл crt0.o - это часть libc (glibc, uClibc, newlib). libc должна быть скомпилирована ТЕМ ЖЕ компилятором, которым Вы компилируете программу. Так что возмите КРОСС-компилятор для ARM9 ПОЛНОСТЬЮ. Не знаю, есть ли такие под cygwin. crt0.S - исходник на ассемблере требующий препроцессинга. crt0.s - исходник на ассемблере после препроцессинга. Получают его из crt0.S. Примерно так Код gcc -E crt0.S -o crt0.s В cygwin у Вас будут с этим проблемы. Часто неразрешимие. Потому как компилятор по регистру буквы (S или s) решает что с ним делать. На мелких проектах с малым количеством таких файлов можно долго и нудно править Makefile. На большых (с большим количеством таких файлов) - все равно не удастся отследить все проблемы. Раз у Вас есть Linux в VMWare, то рекомендую там все и делать. Разумеется кросскомпиляторов в Ubuntu нет. Только родные. Обычно в Linux компиляторы, и прочие программы нужные программисту не ставятся по умолчанию. Нужно доставить пакеты. Особенно пакеты в имени которых есть -dev. Это Development пакет, то есть содержищий заголовочные файлы, библиотеки с отладочной инфой, файлы crt0.o  и пр. нужное для компиляции.
--------------------
- А мораль отсюда такова: всякому овощу свое время. Или, хочешь, я это сформулирую попроще: никогда не думай, что ты иная, чем могла бы быть иначе, чем будучи иной в тех случаях, когда иначе нельзя не быть. © Lewis Carroll. Alice's adventures in wonderland.
|
|
|
|
Сообщений в этой теме
Огурцов BusyBox для чайника Oct 30 2008, 04:42   Огурцов Не успеваю качать. Вот еще линка, должно быть инте... Nov 2 2008, 16:49            mdmitry Цитата(Огурцов @ Nov 12 2008, 13:18) Заме... Nov 12 2008, 10:47             Огурцов Цитата(mdmitry @ Nov 12 2008, 10:47) Прав... Nov 12 2008, 22:13 mdmitry Код
./gcc.exe hello_world.c -o hello_world.exe
Э... Nov 11 2008, 12:21 Rst7 ЦитатаНашел crti.S
Ооо, да, большая буква S
Ког... Nov 12 2008, 11:28 mdmitry Цитата(Rst7 @ Nov 12 2008, 14:28) Когда х... Nov 12 2008, 12:19 vshemm Кросскомпилятор ARM под цигвином есть: http://www.... Nov 12 2008, 14:23 Огурцов Цитата(vshemm @ Nov 12 2008, 14:23) Кросс... Nov 13 2008, 07:29  amw Цитата(Огурцов @ Nov 13 2008, 00:13) Если... Nov 13 2008, 20:16   Огурцов Цитата(amw @ Nov 13 2008, 20:16) В саббже... Nov 13 2008, 20:54    VDV кто-нибудь пробовал отправить сообщение через send... Nov 17 2009, 18:14     VDV разобрался все-таки!
#!/bin/sh
cat <... Nov 18 2009, 09:41 Rst7 ЦитатаКросскомпилятор ARM под цигвином есть
Да гц... Nov 12 2008, 14:29 dronT78 Попробуйте Tiny Core Linux под x86 с блекджеком и ... Dec 31 2009, 11:53 DRUID3 Цитата(dronT78 @ Dec 31 2009, 13:53) Попр... Jan 2 2010, 05:57
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|