Jump to content

    
Sign in to follow this  
VCucumber

BusyBox для чайника

Recommended Posts

В общем, придумал я себе новую, весьма интересную задачу - разработку приложения "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 с дефолтовыми установками сначала скачивался на локальный диск, а затем устанавливался. Сейчас решил перезалить полную версию - может быть это поможет.

Share this post


Link to post
Share on other sites
Конечно, м.б. есть более простой путь для любителя Windows, но я его пока не нашел.

Попробуйте связку Windows + QEMU (если планируете писать "Hello, World" не только для x86 платформ ) + Linux (на виртуальной машине под QEMU + BusyBox там же).

 

Или Windows + VirtualBox (или VMware Workstation или VMware Server) + Linux (на виртуальной машине + BusyBox там же).

 

---

С такими вещами, как busybox, по-моему, лучше разбираться и работать в их родной среде -- Linux --> *nix.

Может, поначалу, всё покажется сложным и непривычным.

Но "оно того стоит". :)

Share this post


Link to post
Share on other sites

"Hello, World" - только не для x86.

Линухи (пока) живут под VMware. В принципе, под qnXы, линуХы, etc есть отдельный диск. Если (вдруг) под линухом окажется так же удобно работать, как под win, может быть переберусь под него. Вопросы лицензионности win в даннном случае не критерий - все куплено.

Почитал про QEMU - возможно да, попробую. Пока нужно как-то запустить Cygwin.

На днях поставил несколько линухов, больше всего понравился ubuntu. Но GCC и иже с ним в ubuntu я не нашел.

Share this post


Link to post
Share on other sites

Вот тут подсказали, что GCC в Ubuntu есть. Он и правда запускается, хотя файло я не нашел. Наверно так же, как и с пингом и трейсроутом - файло отсутствует, а пинговать можно. Шаманы.

Вот еще дали линку на IDE http://www.codeblocks.org/downloads/5 - судя по картинкам - то, что надо.

Edited by Огурцов

Share this post


Link to post
Share on other sites
Вот тут подсказали, что GCC в Ubuntu есть. Он и правда запускается, хотя файло я не нашел. Наверно так же, как и с пингом и трейсроутом - файло отсутствует, а пинговать можно. Шаманы.

Изучите содержимое каталогов:

/bin; /usr/bin; /sbin, есть еще интересные каталоги. Шаманство пройдет. Документация по GCC вполне достаточная для работы. Полезно прочитать руководство по make.

Для KDE среда разработки Kdevelop часто используется.

Share this post


Link to post
Share on other sites

Против шаманства нужно было установить пакет 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_2

http://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 дата время. Какое нужно заклятие, чтобы он запустился ?

Share this post


Link to post
Share on other sites
Еще одно 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 :) )

Share this post


Link to post
Share on other sites
./demo - запуск из текущего каталога, но надо иметь права на запуск у пользователя.

О! Персональное спасибо! Буду сегодня спать спокойно - сабж заработал. Полдела сделано. Теперь начинается вторая половина - чтобы оно заработало на таргете.

 

В общем любая книга по Linux/Unix в помощь. (или RTFM :) )

RTFM - как много в этом звуке...

Edited by Огурцов

Share this post


Link to post
Share on other sites

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`ах такого параметра (еще) не видел.

Share this post


Link to post
Share on other sites

 
./gcc.exe hello_world.c -o hello_world.exe

Это не запуск make, это руками. "Штатное" использование make: make или make makefile и возможно указание цели запуска (make all; make clean и др.) Найдите в примерах makefile и отредактируйте под свою задачу. В Winavr есть хороший пример для сборки. О работе make были обсуждения в ветке про GNU tools.

Share this post


Link to post
Share on other sites

Чувствую себя полным дауном )

 

 

Это не запуск make, это руками.

Эт понятно. Не понятно, можно ли в makefile прописать пути или это нужно делать через configure ? Пока я вижу решение в лоб - выкинуть дефолтовый gcc&co и заменить на кросс.

Share this post


Link to post
Share on other sites

Заменил оригинальные файлы на кроссовые - gcc уже работает. Не работает ld:

ld: crti.o: No such file: No such file or directory

Интересно, что crti.o вообще нет никакого в cygwin, хотя поставил вроде бы весь. Нашел его в баунти-8.0.4, но он, вероятно, для i386. Нашел crti.S в uClibc, как собриать - не известно, под cygwin (уже?) не собирается.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this