Точные шаги для кросс-компиляции QT 5.8.0 для ARM 7 с TSLIB

Я очень плохо знаком с кросс-компиляцией и платами ARM. В настоящее время у меня есть основная идея о кросс-компиляции и бинарном исполнении на платах ARM. Я хочу создать приложение QT для запуска на плате на основе ARM, которая поддерживает сенсорный экран. На плате уже настроены QT 5 и tslib. Но для кросс-компиляции приложений с помощью qmake мне нужен кросс-скомпилированный QT с tslib на моем компьютере с Ubuntu. Я смог построить такой без tslib и успешно отобразил приложение на моей доске. Но когда я пытаюсь настроить qt с помощью -tslib, процесс конфигурации приводит к завершению с этими сообщениями:

Note: No wayland-egl support detected. Cross-toolkit compatibility disabled.
WARNING: Cross compiling without sysroot. Disabling pkg-config
ERROR: Feature 'tslib' was enabled, but the pre-condition 'libs.tslib' failed.
Check config.log for details. 

Вот мой контент на qtbase/mkspecs/linux-arm-gnueabi-g++:

MAKEFILE_GENERATOR      = UNIX
CONFIG                 += incremental
QMAKE_INCREMENTAL_STYLE = sublib

include(../common/linux.conf)
include(../common/gcc-base-unix.conf)
include(../common/g++-unix.conf)

QMAKE_INCDIR += /home/tslib/include/
QMAKE_LIBDIR += /home/tslib/lib/

# modifications to g++.conf
QMAKE_CC                = arm-none-linux-gnueabi-gcc
QMAKE_CXX               = arm-none-linux-gnueabi-g++
QMAKE_LINK              = arm-none-linux-gnueabi-g++
QMAKE_LINK_SHLIB        = arm-none-linux-gnueabi-g++

# modifications to linux.conf
QMAKE_AR                = arm-none-linux-gnueabi-ar cqs
QMAKE_OBJCOPY           = arm-none-linux-gnueabi-objcopy
QMAKE_NM                = arm-none-linux-gnueabi-nm -P
QMAKE_STRIP             = arm-none-linux-gnueabi-strip
load(qt_config)

Вот конфиг. команда:

./configure -opensource -confirm-license -xplatform linux-arm-gnueabi-g++ -prefix /usr/local/qt5.8embd -nomake examples -no-opengl -no-iconv -silent -qpa linuxfb -no-gtk -tslib

Правда я рисую в неправильных методах, доступных через Google. Я хотел бы, чтобы кто-то предложил аккуратные рабочие шаги для кросс-компиляции QT 5.8.0 с включенной опцией -tslib.

Примечание: могу ли я создать приложение QT косвенным образом? У меня есть все необходимые.so файлы на моей целевой плате. Я мог бы скопировать их на мой компьютер и могу ли я кросс-компилировать проект Qt только с помощью моей цепочки инструментов?

1 ответ

Какое ваше целевое устройство?

Что обычно делается при кросс-разработке, например:

  1. Используйте sysroot, предоставляемый кросс-цепочкой (взгляните на Linaro, например)
  2. Используйте вашу целевую файловую систему как sysroot

В первом случае вам придется выполнить кросс-компиляцию всех необходимых зависимостей и добавить их в sysroot кросс-цепочки инструментов.

Во втором случае вы устанавливаете пакеты разработки зависимостей, которые вам нужны, прямо на цель. Затем, в зависимости от того, как вы настроили свою среду разработки, либо скопируйте эту "новую версию" файловой системы устройства на свою машину разработки, либо сделайте ее доступной, например, через sshfs.

Другие вопросы по тегам