Проблемма: lazarus, arm-linux и gtk-directfb...

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

Модератор: Модераторы

Проблемма: lazarus, arm-linux и gtk-directfb...

Сообщение rtcveel » 28.04.2013 12:15:05

Доброго времени суток, уважаемые фоорумчане!
Кратко, сабж: проблемма при компиляции проекта (хост Х86_64-linux, цель arm-linux (ATsam9G45)) .

Конкретнее: есть програмка, написанная на лазарусе (сборка CodeTyphon), ОС Ubuntu 12.10 х86_64 запущена под VirtualBox, необходимо кросскомпелировать на встраиваемую системму с контроллером sam9G45.
Порядок действий с самого начала:
1) создаю виртуалку (VirtualBox), выкачиваю CodeTyphon-овскую сборку, ставлю. Все успешно ставится, все компиляторы и библиотеки необходимые для установки на голую систему в сборке есть.
2) через CodeTyphon-овский менеджер пересобираю кросскомпилятор FPC (arm-linux)
3) запускаю Lazarus, пробую собрать пустой проект (только форма) под хост системму - успешно, всё запускается.
4) настраиваю для кросскомпиляции:
Код: Выделить всё
  Project Options > Code generation > Linux, arm
  Ide Macro Values > LCLWidgetType , gtk2

5) запускаю компиляцию - вываливается куча месседжей , отисутствия библиотек от целевой системы. ОК. Собираю Buildroot -ом корневую под камень sam9G45, включаю в сборку вродебы всё необходимое и даже больше (и gtk2 и Х и Qt - на будующее) ну и соответственно драйвера direcfb и остальное...
6) распаковываю, делаю в Lazarus ссылки на каталоги /lib/ и /usr/lib/ , запускаю компиляцию проекта и тадам - часть ошибок пропадает, но остаются не найдеными crti.o, crtn.o, crtbegin.o, crtend.o...
7) гуглю, оказывается не находит Си-шный кросскомпилятор. Ок. Ставлю Synaptick-ом arm-linux-gnueabi, указываю ссылки на директории с запрашиваемыми crt* файлами, в предвкушении запускаю компиляцию, и вываваливается ошибка:
Код: Выделить всё
   /home/andrew/armlibrary/usr/lib//libx11.so: could not read symbols: File in wrong format

и дальше чтобы я не делал данная ошибка не исчезает :? уже всю голову сломал толи лазарус не хочет с gtk > directfb работать, толи лыжи не едут :(...
Прошу вашей помощи, может быть у когонибуть есть опыт подобных деяний?)
Аватара пользователя
rtcveel
незнакомец
 
Сообщения: 3
Зарегистрирован: 28.04.2013 10:55:46

Re: Проблемма: lazarus, arm-linux и gtk-directfb...

Сообщение Sergei I. Gorelkin » 28.04.2013 15:56:00

1) Удается ли откомпилировать и запустить на госте простейший "hello,world" (для простых программ не требуются какие-либо библиотеки).
2) Что говорит "readelf -h " для этого "hello, world" и для проблемной libx11.so ?
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1407
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: Проблемма: lazarus, arm-linux и gtk-directfb...

Сообщение rtcveel » 28.04.2013 22:58:09

простой консольный проект без gui компилируется без ошибок.

результат readelf -h для libx11.so:
Код: Выделить всё
Magic:   7f 45 4c 46 01 02 01 00 00 00 00 00 00 00 00 00
  Class:                             ELF32
  Data:                              2's complement, big endian
  Version:                           1 (current)
  OS/ABI:                            UNIX - System V
  ABI Version:                       0
  Type:                              DYN (Shared object file)
  Machine:                           ARM
  Version:                           0x1
  Entry point address:               0x12aa0
  Start of program headers:          52 (bytes into file)
  Start of section headers:          1072280 (bytes into file)


Результат для скомпелированной консольной программы project1
Код: Выделить всё
ELF Header:
  Magic:   7f 45 4c 46 01 01 01 61 00 00 00 00 00 00 00 00
  Class:                             ELF32
  Data:                              2's complement, little endian
  Version:                           1 (current)
  OS/ABI:                            ARM
  ABI Version:                       0
  Type:                              EXEC (Executable file)
  Machine:                           ARM
  Version:                           0x1
  Entry point address:               0x80ec
  Start of program headers:          52 (bytes into file)
  Start of section headers:          217384 (bytes into file)
  Flags:                             0x602, has entry point, GNU EABI, software FP, VFP
  Size of this header:               52 (bytes)
  Size of program headers:           32 (bytes)
  Number of program headers:         4
  Size of section headers:           40 (bytes)
  Number of section headers:         13
  Section header string table index: 10


даже не знаю. может проблема в том , что libx11.so не видит какието библиотеки? но FPC должен по теории был ругануться какнить, в принципе при выдачи на фреймбуфер в отличии от Xов, насколько я знаю задействуются всего 2 другие библиотеки libgtk-directfb-2.0 libgdk-directfb-2.0 (через иксы помоему libgtk-x11-2.0 libgdk-x11-2.0 ... могу ошибаться) попробовал копировать и переименовывать одни в другие, не помогло, как и следовало ожидать... завтра попробую тож самое с qt проделать там пока загвоздка в том, что надо qt4pas под целевой системой собрать...

Пока печатал заметил различия: big и little endian, тоже завтра с утречка корневую пересоберу проверю, хотя по теории разницы быть недолжно, хотя не знаю наверняка...
Аватара пользователя
rtcveel
незнакомец
 
Сообщения: 3
Зарегистрирован: 28.04.2013 10:55:46

Re: Проблемма: lazarus, arm-linux и gtk-directfb...

Сообщение Sergei I. Gorelkin » 28.04.2013 23:33:01

Ну вообще-то big-endian и little-endian, как бы это помягче сказать, несовместимы, и проблема состоит именно в этом.
Аватара пользователя
Sergei I. Gorelkin
энтузиаст
 
Сообщения: 1407
Зарегистрирован: 24.07.2005 14:40:41
Откуда: Зеленоград

Re: Проблемма: lazarus, arm-linux и gtk-directfb...

Сообщение rtcveel » 29.04.2013 09:13:47

вот я балда... перепутал "в голове" термины little и big endian с low и big destiny (характеристиками памяти stm32 микроконтроллеров) :oops: совсем заработался :? большое спасибо, сам бы я ещё неделю б думал. щас соберётся файловая и проверю ещё раз.

Добавлено спустя 22 часа 52 минуты 56 секунд:
Всё заработало! Правда только после того как в бинутилах сборки CT к as прописал -meabi=5 $@ и пересобрал FPC.Ещё раз Спасибо! тему можно закрывать :)
Аватара пользователя
rtcveel
незнакомец
 
Сообщения: 3
Зарегистрирован: 28.04.2013 10:55:46


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 261

Рейтинг@Mail.ru