|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
18.08.2017, 11:23 | #1 |
Пользователь
Регистрация: 25.03.2013
Сообщений: 36
|
Прошу помощи с кросс-компиляцией библиотеки qt-gstreamer (QtGstreamer) для ARM
Всем доброго времени суток!
Мучаюсь с компиляцией библиотеки qt-gstreamer-0.10.1 под целевую плату на ARM процессоре. Работаю под Ubuntu Trusty (14.04). Для начала потренировался собрать из исходников под рабочую систему Trusty для i386. После некоторых танцев с бубном это удалось успешно. Но вот с кросс-компиляцией ничего не получается. В качестве зависимостей там указываются: Qt 4 - Required for building everything * Boost - Required for building QtGLib * Automoc 4 - Required for the build system to generate moc files properly * GStreamer - Required to build QtGStreamer * GStreamer base library - Used for building the qwidgetvideosink element * GStreamer app library - Required to build QtGStreamerUtils * GStreamer interfaces library - Required to build QtGStreamer * GStreamer video library - Used for building the qwidgetvideosink element * GLib - Required to build QtGLib * GObject - Required to build QtGLib * Flex - Required to build codegen, a helper code generator * Bison - Required to build codegen, a helper code generator * Doxygen - Used to generate the API documentation Но дальше мне не совсем понятно. Когда я скомпилировал automoc4 под ARM и положил его в мой Target ARM SDK, при попытке собрать QtGstreamer вылетала ошибка shell, что /usr/bin/automoc4 не найден и посему он не может сгенерировать файлы и т.д. Хорошо, установил automoc4 под Trusty (i386), теперь на это он не ругается, но не может собрать codegen. Спустя какое-то количество танцев codegen собрался успешно, в папке build/codegen появился исполняемый файл (естественно для ARM), но далее при попытке сборки QtGstreamer выдает ошибку shell, что codegen не может быть запущен, т.к. имеет неправильный формат (короче он пытается его исполнить под текущей системой i386). И теперь я вообще запутался: что из этих зависимостей должно быть под i386, а что под ARM? Flex, bison, Doxygen нужны для i386 или соответственно для ARM? Я конечно могу посреди процесса сборки подсунуть codegen, скомпилированный ранее под i386, но как-то это неправильно. Что-то тут не так, а что именно я понять не могу. Зачем он его собирает кросс-компилятором, если собирается его запускать под текущей системой? Прошу любые мысли и помощь! Спасибо! Последний раз редактировалось Xuch; 18.08.2017 в 11:25. |
18.08.2017, 11:32 | #2 |
Пользователь
Регистрация: 25.03.2013
Сообщений: 36
|
Для удобства запуска cmake для кросс-компиляции сделал файлик arm_toolchain.cmake следующего содержания:
Код:
Код:
|
18.08.2017, 11:32 | #3 |
Пользователь
Регистрация: 25.03.2013
Сообщений: 36
|
И вот что выдает cmake:
Код:
|
18.08.2017, 11:34 | #4 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,711
|
Все либу должны либо собираться под АРМ, либо уже быть собранным под него. Тулзы типа компилятора/генераторов/парсеров должны быть для вашей текущей системы, т.к. они будут запускаться на ней.
П.С, Так по логу cmake все сделал... |
18.08.2017, 11:36 | #5 |
Пользователь
Регистрация: 25.03.2013
Сообщений: 36
|
Хорошо, а почему тогда codegen, который я так понимаю он использует как вспомогательный инструмент и будет запускать под i386, компилирует под ARM? И как его заставить собирать его под i386 с процессе основной сборки?
|
18.08.2017, 11:38 | #6 |
Пользователь
Регистрация: 25.03.2013
Сообщений: 36
|
* Flex - Required to build codegen, a helper code generator
* Bison - Required to build codegen, a helper code generator Эти должны быть под i386 я так понимаю? |
18.08.2017, 11:52 | #7 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,711
|
А вы задали CMAKE_SYSTEM_PROCESSOR ?
|
18.08.2017, 11:57 | #8 |
Пользователь
Регистрация: 25.03.2013
Сообщений: 36
|
Нет..
Добавить еще SET(CMAKE_SYSTEM_PROCESSOR ARMv7) или просто SET(CMAKE_SYSTEM_PROCESSOR ARM)? |
18.08.2017, 12:42 | #9 |
Пользователь
Регистрация: 25.03.2013
Сообщений: 36
|
CMAKE_SYSTEM_PROCESSOR задал, ничего не изменилось((
|
18.08.2017, 12:44 | #10 |
Пользователь
Регистрация: 25.03.2013
Сообщений: 36
|
И я не понимаю, почему cmake правильно находит gstreamer в папке с SDK, а boost берет из моей системы i386 из /usr, хотя лежит ARM'овский boost в папке с SDK рядом с gstreamer'ом...
Странно как-то |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
GNU ARM автоматический поиск .c файлов библиотеки | Aoizora | Микроконтроллеры, робототехника, схемотехника, 3D принтеры | 5 | 01.08.2017 07:29 |
Работа с периферией ARM F100RBT6B без библиотеки CMSIS | Aoizora | Микроконтроллеры, робототехника, схемотехника, 3D принтеры | 4 | 18.07.2017 22:47 |
Прошу помощи в написании программ для работы с текстовыми файлами | Никита757 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 15.12.2015 21:35 |
Прошу помощи в разборе куска кода драйвера RIL под ARM | Lebets_VI | Win Api | 0 | 14.08.2009 13:58 |