Введение
Я использую машину с Windows 10 для разработки набора библиотек и приложений qt.
Эти библиотеки и приложения предназначены для использования на архитектурах x86 и arm, а также в средах Windows и Linux.
Однако некоторые библиотеки или приложения имеют смысл только при использовании на конкретном armhf
встроенном устройстве Linux.
Теперь я остановлюсь на этом сценарии использования.
Я хочу отладить встроенное приложение на цели armhf с моей машиной Windows. Процесс должен быть максимально автоматизирован.
Текущий рабочий день
- Я компилирую свои библиотеки на машине для разработки для Windows и запускаю там тесты модулей вручную.
- Если все идет хорошо, я фиксирую источники.
- Мои конвейеры сборки начнут работать на нашем сервере сборки, они
- Компиляция для linux-x86 и armhf
- Запуск модульных тестов на linux-x86
- Сборка документов
- Архивация на нашем файловом сервере
- Вставить сборку на цель (через мой компьютер с Windows)
Доступные инструменты
- Qt создатель (windows)
- Среда сборки Docker, содержащая целевой набор инструментов, а также библиотеки Qt, для которых я создаю свои собственные библиотеки и приложения.
- Подсистема Windows для Linux
Что я сделал до сих пор
Я уже успешно собрал gdb-сервер для своей цели, используя среду сборки Docker.
Я создал QT, мои собственные библиотеки и мое приложение для цели с CONFIG+=debug
.
Я выполнил LD_LIBRARY_PATH=/some/path gdbserver :1234 <executable>
на цели, которая подтвердила, что она работает. Ручное соединение с windows gdb, поставляемым с qt, показало, что кажется, что он не работает вместе, потому что исполняемому файлу gdb нужна цель, установленная на arm.
Верно ли мое предположение, что мне нужно каким-то образом создать исполняемый файл gdb для windows, соответствующий цели gdbserver?
У меня есть набор инструментов для сборки цели в контейнере Docker, но как я могу использовать это для создания исполняемого файла Windows? Похоже, я должен использовать Mingw для этого и положить его в свой док-контейнер. Но даже тогда я понятия не имею, как на самом деле собрать с ним GDB, чтобы он прекрасно работал с GDB-сервером, созданным набором инструментов arm.
Я также проверил настройки удаленной отладки в графическом интерфейсе qt creator, где, по-видимому, мне нужно указать путь к (локальному) исполняемому файлу, который я хочу отлаживать. Но как это будет работать на моей машине с Windows, поскольку исполняемый файл был создан для другой архитектуры? Я предполагаю, что это не будет работать на окнах.
Кроме того, я вижу запись для порта gdbserver здесь в графическом интерфейсе, но не для его IP-адреса.
В целом, я немного растерялся и надеюсь на полезные советы.
Заранее спасибо