motofan logo
27 страниц V  1 2 3 > »         
> 

Компиляция нативных приложений под E6/A1200, Создание окружения для компиляции

lavelas
сообщение 24.10.2007, 15:24


Опытный
***

Группа: Пользователи
Сообщений: 124
Регистрация: 4.5.2007
Пользователь №: 133 636
Модель телефона: Motorola ROKR E6
Прошивка: R533_Ezh_08_0.1_RU

Рейтинг: 47.5



Данный FAQ предназначен для людей, имеющих хотя-бы минимальный опыт общения с консолью *nix. И хотя он заточен на cygwin, с минимальной адаптацией и прикладыванием головы должен подойти и для unix-систем.

Что нам понадобится:
1. Cygwin
2. EZX CrossTool (в AllIn1.zip)
3. Header-файлы qte+модификации мои и donga (в AllIn1.zip)
4. dev-ezx для сборки moc.exe (в AllIn1.zip)
5. Tmake
6. Спека для TMake под нашу платформу (в AllIn1.zip)

Порядок установки:
1. Устанавливаем Cygwin. Выбираем типичную установку. Внимание! Следующие пакеты необходимо отметить вручную:
- gcc-core
- gcc-g++
- byacc
- diffutils
- flex
- make
- patchutils
- perl
- wget
2. В среде cygwin-а создаем каталог "/opt/cross".
3. Распаковываем ezx-crosstool-0.5.tar.bz2 куда угодно. Подправляем файл build.sh, меняем строку
Цитата
RESULT_TOP=$CROSSTOOL_DIR/gcc-arm-iwmmxt

на
Цитата
RESULT_TOP=/opt/cross/gcc-arm-iwmmxt
Из cygwin-а запускаем build.sh. Наберитесь терпения и готовность выкачать из сетки порядка 76 Мб. После запуска скачивание и сборка проходят автоматически. Если во время работы произошла ошибка - см. пункт 1. Пока компилится crosstool можно перейти к шагам 4-6.
4. Распаковываем tmake-1.8.tar.gz в /opt/cross, переименовываем каталог tmake-1.8 в tmake. В каталог /opt/cross/tmake/lib распаковываем tmakespec-linux-ezx-g++.tar.gz
5. Распаковываем dev-ezx-0.2.0.tgz в любой каталог, идем в dev-ezx-0.2.0/moc и делаем make. Создаем каталог /opt/cross/dev-ezx и 3 подкаталога в нем: bin, lib, include. В первый кидаем собраный moc.exe из dev-ezx-0.2.0/moc, во второй копируем все файлы из каталога /usr/lib телефона. В третий - распаковываем содержимое dev-ezx-include.tgz либо см. внизу поста.
6. Открываем ваш ".bash_proflie" (который находится в домашнем каталоге - /home/username) и дописываем в конец файла:
Цитата
export ARM_DEV_DIR=/opt/cross/gcc-arm-iwmmxt/gcc-3.3.6-glibc-2.3.2/arm-linux
export QTDIR=/opt/cross/dev-ezx
export TMAKEPATH=/opt/cross/tmake/lib/linux-ezx-g++

export PATH=$PATH:/opt/cross/tmake/bin:/opt/cross/gcc-arm-iwmmxt/gcc-3.3.6-glibc-2.3.2/arm-linux/bin


Когда crosstool соберется - окружение готово. Идем в каталог hellomoto (что в архиве) и выполняем в нем
Код
progen -o hellomoto.pro && tmake hellomoto.pro -o Makefile
. Эта команда создаст Makefile для проекта. Теперь исполняем make и копируем бинарник на телефон, запускаем
Код
. /home/native/.profile
./hellomoto

Запустилось? Поздравляю!

При написании программ можно ориентироваться на QT 2.3 reference doc и копать заголовочные файлы. Кроме того можно подглядывать в библиотеки следующим образом:
Код
arm-linux-objdump -T --demangle libezxappbase.so

и дополнять заголовочные файлы откопанными структурами.

Очень надеюсь, что мой FAQ будет полезен (надеюсь, ничего не забыл.. ;) и в скором времени список нативных приложений существенно увеличится.

Добавлено позже:
Вместо include, описанного в п. 5 лучше использовать:

include от qt-embedded-2.3.8 + патч.
include/ezx.

Сообщение отредактировал lavelas - 15.12.2007, 7:25
Прикрепленный файл AllIn1.zip   ( 922.35 килобайт ) Кол-во скачиваний: 1062
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
lavelas
сообщение 25.10.2007, 10:09


Опытный
***

Группа: Пользователи
Сообщений: 124
Регистрация: 4.5.2007
Пользователь №: 133 636
Модель телефона: Motorola ROKR E6
Прошивка: R533_Ezh_08_0.1_RU

Рейтинг: 47.5



Удалил тут случайно свой /opt/cross/dev-ezx/include и понял что с теми заголовками что в FAQ-е получается компилить не все, а именно не компилятся классы от donga. Прилагаю архив, в котором рабочие заголовки. Распаковать в /opt/cross/dev-ezx. FAQ поправил, так что если кто-то будет качать AllIn1.zip после 25.10 14:20 в нем уже учтены изменения. Кто качал раньше - достаточно скачать только этот файл.

Отпишитесь кто-нибудь работает ли мой способ?

Сообщение отредактировал lavelas - 25.10.2007, 15:32
Прикрепленный файл dev_ezx_include.zip   ( 247.3 килобайт ) Кол-во скачиваний: 504
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
xxbasowxx
сообщение 29.10.2007, 12:57


Новичок
*

Группа: Пользователи
Сообщений: 20
Регистрация: 17.10.2007
Пользователь №: 150 874
Модель телефона: Motorola A1200E

Рейтинг: 7



Господа, а нет ли у кого прямых ссылочек именно на эти пакеты (byacc и ...)? Неделя гугления принесла лишь головную боль. Да ещё и установщик Cygwin не умеет докачивать, да и не все зеркала содержат нужные пакеты sad.gif
lavelas, может выложишь это одним архивом? Благодарности гарантированы! smile.gif
Накачал инфы о классовой модели Qt, туториалов... руки чешутся smile.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Maksimka!
сообщение 29.10.2007, 14:06


Ветеран
*****

Группа: Пользователи
Сообщений: 379
Регистрация: 13.8.2007
Пользователь №: 144 397
Модель телефона: Milestone
Прошивка: 2.1

Рейтинг: 76



в теме "что за ссылка" есть линки на страницы с файлами телефона, там как я понял весь корень фс выложен, посмотрите может тоже пригодится
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
xxbasowxx
сообщение 30.10.2007, 9:53


Новичок
*

Группа: Пользователи
Сообщений: 20
Регистрация: 17.10.2007
Пользователь №: 150 874
Модель телефона: Motorola A1200E

Рейтинг: 7



Таки добрался до 5-го пункта но make выругался вот так :
------------------------
g++ -Wno-unused -Wno-parentheses -pipe -DQWS -fno-exceptions -fno-rtti -O2 -fno-
default-inline -Wall -W -DNO_DEBUG -DQT_NO_CODECS -DQT_LITE_UNICODE -I../include
/qt -I. -c mocgen.cpp
make: g++: Command not found
make: *** [mocgen.o] Error 127
-----------------------
Попробовал всё сначала и мне не понравилось что после выполнения пункта 3 выводится вот так :
-----------------------
creating cache ./config.cache
checking host system type... i686-host_pc-cygwin
checking target system type... arm-unknown-linux-gnu
checking build system type... i686-host_pc-cygwin
checking for a BSD compatible install... /usr/bin/install -c
/cygdrive/d/a1200/sdk/allin1/ezx-crosstool-0.5/build/arm-linux/gcc-3.3.6-glibc-2
.3.2/binutils-2.15/configure: line 2343: cc: command not found
*** The command 'cc -o conftest -g conftest.c' failed.
*** You must set the environment variable CC to a working compiler.
-----------------------
Я так понимаю должно быть иначе. Покрайней мере не понятно что записывать в CC.

На всякий случай привожу версии пакетов для CYGWIN:

byacc - byacc-1.9-1.tar.bz2
diffutils - diffutils-2.8.7-1.tar.bz2
flex - flex-2.5.4-2.tar.bz2
make - make-3.81-1.tar.bz2
patchutils - patchutils-0.2.31-1.tar.bz2
perl - perl-5.8.8-4.tar.bz2
wget - wget-1.10.2-2.tar.bz2

Делал так : пакеты просто закачивал, а уже после закачки инсталил. (Кнопкой VIEW переключил на not installed, на пакетах кликал что бы небыло skeep).

Господа профессионалы, нужна ваша помощь! Но и сам не буду сидеть сложа руки.
Пойду разбираться в вопросе smile.gif

P.S. Вообще потрясён уровнем шаманства... Lavelas, огромный тебе респект!
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
scl
сообщение 30.10.2007, 9:56


Опытный
***

Группа: Пользователи
Сообщений: 128
Регистрация: 13.10.2004
Из: Москва
Пользователь №: 16 465
Модель телефона: Motorola Milestone

Рейтинг: 8.5



Цитата(xxbasowxx @ 30.10.2007, 13:53) *

------------------------
g++ -Wno-unused -Wno-parentheses -pipe -DQWS -fno-exceptions -fno-rtti -O2 -fno-
default-inline -Wall -W -DNO_DEBUG -DQT_NO_CODECS -DQT_LITE_UNICODE -I../include
/qt -I. -c mocgen.cpp
make: g++: Command not found
make: *** [mocgen.o] Error 127
-----------------------

.3.2/binutils-2.15/configure: line 2343: cc: command not found
*** The command 'cc -o conftest -g conftest.c' failed.
*** You must set the environment variable CC to a working compiler.
-----------------------


а у вас собственно gcc то есть?

Сообщение отредактировал scl - 30.10.2007, 9:57
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
xxbasowxx
сообщение 30.10.2007, 10:43


Новичок
*

Группа: Пользователи
Сообщений: 20
Регистрация: 17.10.2007
Пользователь №: 150 874
Модель телефона: Motorola A1200E

Рейтинг: 7



Получается что нет smile.gif Пролез поиском по всем каталогам. От чего то думалось, что он возьмётся в третьем пункте smile.gif. Я начинающий линуксоид shuffle.gif
Поставил на закачку.
Спасибо за указание правильного направления поисков! smile.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
lavelas
сообщение 30.10.2007, 10:52


Опытный
***

Группа: Пользователи
Сообщений: 124
Регистрация: 4.5.2007
Пользователь №: 133 636
Модель телефона: Motorola ROKR E6
Прошивка: R533_Ezh_08_0.1_RU

Рейтинг: 47.5



Действительно, самое главное упустил.. smile.gif
Поправил в FAQ.
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
xxbasowxx
сообщение 31.10.2007, 15:08


Новичок
*

Группа: Пользователи
Сообщений: 20
Регистрация: 17.10.2007
Пользователь №: 150 874
Модель телефона: Motorola A1200E

Рейтинг: 7



Ура! Получил в окошке Preved! с кнопочкой Otved, так что, lavelas, твой способ ещё как работает!
Ну, парни, вы супер!

lavelas, если не секрет, сколько лет кодишь под линуксами?

Вот теперь с чегоб начать sport_boxing.gif
Работы ведь не початый край!
Мож коллективно сориентируемся в каком-нить направлении?
У меня для затравки несколько вопросов к знатокам :
1. POSIX МонтаВиста придерживается?
2. С чего начать раскопки для создания TCP/IP демонов?, ибо хочется создать BlueTouth Net. Имею некоторый опыт работы с RAW сокетами, но надеюсь, RAW не понадобятся...
3. Наверное нужно организовывать мануал по SDK на родном языке. С миру по нитке... вот вам и ВИКИ biggrin.gif

P.S. Забыл написать. В папку /home/native файл не захотел ложится. Каталог ReadOnly? Запустил с флэши, пришлось ещё chmod 777 сделать.

Сообщение отредактировал xxbasowxx - 31.10.2007, 15:13
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
maximus2963
сообщение 31.10.2007, 19:02


Ветеран
*****

Группа: Пользователи
Сообщений: 375
Регистрация: 24.10.2005
Из: Молдова, г.Кишинёв
Пользователь №: 55 755
Модель телефона: Motorola ROKR E6
Прошивка: R533_G_11.12.06PYan0

Рейтинг: 15



xxbasowxx, вот было бы хорошо, еслиб сделали прогу шоб картинка при входящем звонке была на весь экран wink.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Компиляция нативных приложений под E6/A1200, Создание окружения для компиляции · Motorola ROKR E6, E6e, E6tv, MING A1200, A1200i, A1200e, A1200r, A1200w, A1600 · Forum
 

27 страниц V  1 2 3 > » 
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 25.4.2024, 10:24

Форум живёт: