Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:0
Поисковых ботовПоисковых ботов:2
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:3
Форум » starterkit.ru » Embedded Linux
Кастомный widget для qt
scout
Добавлено 18.04.2017 20:47
0
Сообщение: 1
scout
0

Пункты: 710
Регистрация: 27.02.2017
Добрый день.

Пишу QT приложение под плату SK-iMX6S. Пользуюсь QT 5.4 и buildroot 2014.08. Пытаюсь собрать кастомный виджет в виде библиотеки, чтобы работать с ним из QtDesigner.
Однако при сборке ругается на файл <QtUiPlugin/QDesignerCustomWidgetInterface>, который действительно не существует. Самое интересное, что в более старом buildroot, который включал в себя QT4.8, этот файл есть.

Подскажите, в каком направлении двигаться? Может что то надо еще установить?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 18.04.2017 21:18 Сообщение: 2
sasamy
4.71

Пункты: 83552
Регистрация: 14.08.2009
Цитата

Может что то надо еще установить?


нужен qttools но в старом buildroot для него нет правил сборки, в последнем buildroot есть

http://www.starterkit.ru/html/index.php?name=forum&op=view&id=27616
Спуститься к концу Подняться к началу
Персональная информация
scout
Добавлено 19.04.2017 15:50 Сообщение: 3
scout
0

Пункты: 710
Регистрация: 27.02.2017
Спасибо за наводку, но тогда я не понимаю, почему нужные инклуды есть в более старом, buildroot 2013.11-sk?

И еще вопрос: я правильно понимаю, что если я хочу добавить кастомный widget в qt designer(чтобы он отображался в панели виджетов) мне нужно собрать две dll двумя компиляторами: под arm и под x86?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 19.04.2017 16:32 Сообщение: 4
sasamy
4.71

Пункты: 83552
Регистрация: 14.08.2009
Цитата

я не понимаю, почему нужные инклуды есть в более старом, buildroot 2013.11-sk?


потому что там старая версия Qt 4.8 собирается из одного архива, Qt5 поделена на отдельные модули в разных архивах. Про qt designer не могу ничего сказать - я им ниразу не пользовался.
Спуститься к концу Подняться к началу
Персональная информация
scout
Добавлено 19.04.2017 17:37 Сообщение: 5
scout
0

Пункты: 710
Регистрация: 27.02.2017
Спасибо, становится понятнее. 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? Простите за глупые вопросы.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 19.04.2017 19:04 Сообщение: 6
sasamy
4.71

Пункты: 83552
Регистрация: 14.08.2009
Я не специалист по 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
Спуститься к концу Подняться к началу
Персональная информация
scout
Добавлено 19.04.2017 23:29 Сообщение: 7
scout
0

Пункты: 710
Регистрация: 27.02.2017
Спасибо Вам за ответы, разобрался. Подключил qmake и его окружение для хоста, собрал widget для qt designer, кросскомпилятором собрал widget для целевой платформы. В общем получил что хотел: widget доступен из qt creator для переноса на форму и редактирования свойств; собранный кросскомпилятором виджет работает на целевой платформе. Недостающие для сборки файлы руками скопировал из /build в /sysroot.

Осталась одна непонятка, но она скорее относится к buildroot в общем, а не конкретно к qt. Как файлы пакетов вообще попадают в /sysroot? Это определяется какими то правилами их сборки или это делается вручную?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 20.04.2017 10:06 Редактировалось 20.04.2017 10:08 Сообщение: 8
sasamy
4.71

Пункты: 83552
Регистрация: 14.08.2009
Цитата

Как файлы пакетов вообще попадают в /sysroot?


зависит от пакета и его системы сборки

https://buildroot.org/downloads/manual/manual.html#_developer_guide

см. 17.5 - 17.10

в общем случае, если не используются какие-то стандартные системы сборки

https://buildroot.org/downloads/manual/manual.html#_infrastructure_for_packages_with_specific_build_systems

Цитата

On line 12, we specify that this package wants to install something to the staging space. This is often needed for libraries, since they must install header files and other development files in the staging space. This will ensure that the commands listed in the LIBFOO_INSTALL_STAGING_CMDS variable will be executed
Спуститься к концу Подняться к началу
Персональная информация
scout
Добавлено 20.04.2017 11:48 Сообщение: 9
scout
0

Пункты: 710
Регистрация: 27.02.2017
Спасибо большое Вам за ответы, буду раскуривать.
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Embedded Linux