#qt #cross-compiling
#qt #перекрестная компиляция
Вопрос:
Я успешно скомпилировал Qt 5.12.2 для raspberry pi в соответствии с https://mechatronicsblog.com/cross-compile-and-deploy-qt-5-12-for-raspberry-pi / были созданы папки «qt5» для хоста и «qt5pi» для rpi, и я смог добавить qmake внутри «qt5 / bin» в Qt Creator и перенести «qt5pi» в rpi, затем перекрестно скомпилировал простую программу и развернул на rpi, все было в порядке. Я использовал Kubuntu 18.10 64bit, и для toolchain, который я пробовал, был тот, что вhttps://github.com/raspberrypi/tools как предлагалось в большинстве руководств, и gcc-linaro-6.3.1 toolchain, оба были успешными.
У меня есть другая виртуальная машина с ubuntu 16.04 64bit на другом компьютере, которую я также хотел бы использовать для перекрестной компиляции для того же rpi. Я сделал следующее:
-
Я создал другой «системный корень» таким же образом, как предлагалось в руководстве, из rpi на виртуальную машину, используя rsync, который должен быть идентичен тому, что в Kubuntu.
-
Затем я также перенес недавно скомпилированную папку «qt5pi» из rpi на виртуальную машину, используя rsync.
-
Затем я перенес папку «qt5» из Kubuntu на виртуальную машину, также используя rsync.
Затем, когда я попытался добавить qmake в переданный «qt5 / bin» в Qt Creator на виртуальной машине, он выдал сообщение об ошибке: «Не удалось добавить исполняемый файл qmake / home / v / raspi / qt5 / bin / qmake». Но в Kubuntu qmake работал нормально.
Это произошло с обеими цепочками инструментов, которые я пробовал, успешно на исходном хосте, но не удалось при копировании на другой. И я все очистил, как хост, так и rpi, прежде чем менять цепочки инструментов. Поэтому я не думаю, что это связано с цепочками инструментов.
Мои среды Kubuntu и виртуальной машины Ubuntu не так уж сильно отличаются, мои другие программы, скомпилированные в одной из них, могут нормально выполняться в другой. Что могло вызвать проблему? Или есть какой-либо способ перенести среду перекрестной компиляции между хост-компьютерами? Спасибо!
Комментарии:
1. Можно ли переместить ваш набор инструментов?
2. @Scab Я так думаю. Я использовал предварительно скомпилированные двоичные файлы. Для репозиториев git я просто загрузил из git, а для linaro 6.3 я загрузил сжатый файл и извлек все оттуда. Я не компилировал цепочки инструментов.
3. Во-первых, вместо копирования я бы посоветовал вам повторить ту же процедуру, чтобы установить ваш набор инструментов на новый хост и посмотреть, работает ли это.
4. Досадно, что ряд путей «жестко закодирован» в qmake при сборке. В основном о том, где находится сама сборка Qt, а также где находится системный корень (и, возможно, другие вещи). (Вы можете увидеть некоторые, но вряд ли все, из них при просмотре «деталей» установки Qt в QtCreator kit setup.) Итак, вам действительно нужно, чтобы вещи были практически идентичными (а не просто «не такими разными») с точки зрения этих путей. Теоретически это должно сработать, хотя. Сообщение об ошибке «не удалось добавить» также раздражающе расплывчатое. :-/ Где-то может быть журнал с более подробной информацией.
5. @Scab Процедура та же. Спасибо вам обоим, я изучу это подробнее, надеюсь, я смог найти журнал.