Пишу QT приложение под плату SK-iMX6S. Пользуюсь QT 5.4 и buildroot 2014.08. Пытаюсь собрать кастомный виджет в виде библиотеки, чтобы работать с ним из QtDesigner.
Однако при сборке ругается на файл <QtUiPlugin/QDesignerCustomWidgetInterface>, который действительно не существует. Самое интересное, что в более старом buildroot, который включал в себя QT4.8, этот файл есть.
Подскажите, в каком направлении двигаться? Может что то надо еще установить?
Спасибо за наводку, но тогда я не понимаю, почему нужные инклуды есть в более старом, buildroot 2013.11-sk?
И еще вопрос: я правильно понимаю, что если я хочу добавить кастомный widget в qt designer(чтобы он отображался в панели виджетов) мне нужно собрать две dll двумя компиляторами: под arm и под x86?
потому что там старая версия Qt 4.8 собирается из одного архива, Qt5 поделена на отдельные модули в разных архивах. Про qt designer не могу ничего сказать - я им ниразу не пользовался.
Спасибо, становится понятнее. qtttols добавил в buildroot, собрал.
Однако, снова затык.
Нужные файлы после сборки появились в /buildroot-2014.08/output/build/qt5tools-5.4.0/include. Но в /home/user/src/buildroot-2014.08-sk-3.10.17/output/host/usr/arm-buildroot-linux-gnueabihf/sysroot/usr/include/qt5 эти файлы не добавились. К тому же некоторые includ-ы ссылаются на файлы из qt5tools-5.4.0/src, что смущает. Эти файлы надо в ручную копировать в папку /sysroot/usr/include/qt5? Где задаются пути к include в qt? Простите за глупые вопросы.
Я не специалист по Qt, но мне кажется для целевой системы designer не нужен. Если посмотреть правила сборки в buildroot-2016.11 там собирается всего пара приложений для таргета, а в staging вообще не устанавливается кроме linguist
ifeq ($(BR2_PACKAGE_QT5TOOLS_LINGUIST_TOOLS),y)
# use install target to copy cmake module files
define QT5TOOLS_INSTALL_STAGING_CMDS
$(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/src/linguist install
endef
endif
Спасибо Вам за ответы, разобрался. Подключил qmake и его окружение для хоста, собрал widget для qt designer, кросскомпилятором собрал widget для целевой платформы. В общем получил что хотел: widget доступен из qt creator для переноса на форму и редактирования свойств; собранный кросскомпилятором виджет работает на целевой платформе. Недостающие для сборки файлы руками скопировал из /build в /sysroot.
Осталась одна непонятка, но она скорее относится к buildroot в общем, а не конкретно к qt. Как файлы пакетов вообще попадают в /sysroot? Это определяется какими то правилами их сборки или это делается вручную?