2016-03-21 3 views
0

Das gleiche question wurde in ähnlicher Weise gefragt, aber die Antwort ist unbefriedigend. Deshalb habe ich die folgenden noch einmal fragen wollte:Wie erstellt man Qt-Anwendungen für Imx6-Prozessoren?

  • Ab nur mit einem Ubuntu 14.04 OS, was sind die Schritte, die ich folgen sollte, um Cross-kompilieren & meine Qt-GUI-Anwendung auf einem Embedded Board mit imx6 bereitstellen Prozessor?
  • Gibt es irgendwelche Werkzeuge & Bibliotheken, die ich installieren muss, außer Qt Creator & Qt 5?
  • Gibt es nach der Kompilierung irgendwelche Einschränkungen in der Funktionalität der Anwendung? Mit anderen Worten, was macht der Code auf dem PC, ist auch auf der Platine gemacht?
+0

https://community.freescale.com/docs/DOC-94066 Schauen Sie hier! :) –

+0

Ich weiß über diese Seite, aber es erklärt nur, nachdem Sie yoco & imx6 Bild eingerichtet haben. Ich brauche auch den ersten Teil – OnurA

Antwort

2

Das ist eine große Frage!

Zumindest benötigen Sie einen Cross-Compiler, der auf Ihrem Ubuntu-System läuft, aber Binärdateien für Ihren iMX6 (ARM) erstellt. In der Regel, wenn Sie Qt herunterladen, wird auch ein Compiler damit kompiliert. Dieser Compiler ist so gebaut, dass er auf der Plattform läuft, auf der Sie Qt heruntergeladen haben und um Binärdateien für diese Plattform zu erstellen. Sie müssen kompilieren, so ist Ihr Host (wahrscheinlich) x86 aber Ihr Ziel ist ARM. Sie müssen also entweder einen vordefinierten Compiler und eine Bibliothekskette, die auf x86 läuft, erstellen und ARM-Binärdateien generieren oder selbst eine erstellen. Für beliebte eingebettete Plattformen (wie zum Beispiel ein Raspberry Pi) gibt es vorgefertigte Toolchains, für Entwicklungsboards ist normalerweise eine vorgefertigte Toolchain in irgendeiner Form vom Hersteller erhältlich. Für die vollständige Kontrolle über ein Produkt würden Sie normalerweise selbst ein Produkt erstellen, das exakt Ihren Produktanforderungen entspricht.

Wenn Sie Qt Creator auf einer ARM-Plattform ausführen, ist der Cross-Compiler nicht erforderlich, jedoch sind eingebettete Umgebungen in der Regel relativ langsam mit begrenzten Ressourcen, daher die Kreuzkompilierung. Sie kompilieren kompilieren auf einer schnellen Maschine, auf der alle Ihre Tools aktiviert sind, und führen die resultierende Binärdatei auf dem langsameren, eingeschränkteren Embedded-System aus.

Dann müssen Sie ein Betriebssystem kompilieren, das auf dem iMX6 ausgeführt wird, wahrscheinlich mit einem benutzerdefinierten Bootloader und Treibern, die für Ihr eingebettetes System geeignet sind.

Dann müssen Sie Qt gegen dieses ARM-Ziel aufbauen.

Dann können Sie Ihre App in Qt darüber hinaus bauen.

Ich würde vorschlagen, dass Sie Yocto (https://www.yoctoproject.org/) betrachten, um ein minimales System zu bauen, um auf dem iMX6 zusammen mit dem Partnerquercompiler zu laufen. Alternativ könntest du crosstool-ng (http://crosstool-ng.org/) betrachten, um den Compiler zu erstellen und dann das O/S selbst auf die Hand zu setzen.

In der Regel, wenn Sie ein Entwicklungsboard von einem Hersteller haben, haben sie das alles für Sie getan, so dass Sie zumindest Tag 1 ausprobieren können!

+0

Welcher dieser Schritte ist mit mkspecs verwandt? Wie Sie wahrscheinlich wissen, gibt es im qt-Ordner einen mkspecs-Ordner, in dem Sie die Architektur Ihres Zielgeräts auswählen können. – OnurA

+0

In meinem Fall wäre es so etwas wie linux-imx6-g ++ etc .. – OnurA

+1

mkspecs sind nur eine Sammlung von Compiler-Einstellungen für ein bestimmtes Build-Ziel, es ist Qts Art der Verwaltung der Details von mehreren Kompilierzielen. Sie würden sich auf Ihre benutzerdefinierte Cross-Toolchain beziehen, d. H. Sie haben etwas namens "linux-imx6-g ++" generiert, so dass Ihr mkspec darauf verweisen würde. – Joe

1

Verwenden Sie das Yocto-Projekt und suchen Sie nach der Meta-Ebene zum Hersteller/Wartungstafel (Toradex, NXP/Freescale und andere) oder Buildroot.

Für Produkt wie mit Yocto Project.

+0

Ich kann deutlich sehen, dass Yocto-Projekt eine Unterstützung für NXP/Freescale-Boards hat, aber ich weiß nicht, welchen Leitfaden zu folgen. – OnurA

+0

@OnurA, wenn Sie Toradex-Module verwenden, können Sie diese Webinare folgen (https://www.toradex.com/webinars/building-embedded-linux-images-with-the-yocto-project-introduction & https: //www.toradex.com/webinars/building-embedded-linux-images-with-the-yocto-project-advanced) um Linux-Images für Toradex ARM-basierte Module zu erstellen. Das Webinar verwendet speziell ein auf NXP iMX6 basierendes Modul. Das Ende von Teil 1 beschreibt das Generieren eines SDK mit dem Yocto-Projekt, das so angepasst werden kann, dass es Unterstützung für Qt im SDK bietet. Teil 2 des Webinars enthält Unterstützung für Qt 5 in einem benutzerdefinierten Linux-Image. – shibley