2017-09-07 3 views
0

Ich habe ein Board mit Zynq-Chipsatz und Armv7-Prozessor und Ubuntu 12.04. Ich möchte aus der Ferne ein C++ - Programm mit QtCreator erstellen und debuggen. Ich habe versucht, ein Kit zum Erstellen des Programms using this link zu erstellen. fügte den Compiler in den Toolchains des Boards hinzu und fügte qt Version 4.8.1 zum Kit hinzu (Version von qt auf der Platine ist 4.8.1).Versuchen, C++ für ein Remote-Arm-Gerät auf QtCreator zu bauen, ausführbar ist 64bit

Der Code wird erfolgreich erstellt. Das Problem ist, dass die Binärdatei nicht auf meinem Board ausführbar ist, weil es scheint, dass es eine 64-Bit-Binärdatei ist und mein Board nicht 64-Bit ist. Fehle ich etwas?

wie kann ich überprüfen, ob meine config für die kompilierung qt überall quelle korrekt war und es in der qmake resultierte ich wollte?

übrigens mein eigenes Betriebssystem ist Ubuntu 16.04 64bit.

Antwort

0

nach stundenlangem Suchen und Ausprobieren verschiedener Dinge fand ich den Grund. Vor allem als @ michal-f sagte ich 32-Bit-Ubuntu installiert. Das Making-in-Terminal führte zu einer ARM-Binärdatei, aber QtCreator wurde gerade für den Intel-Prozessor kompiliert.

so dumm wie es scheint, der Grund war, dass ich nicht wusste, dass Qt-Variablen nicht Systemvariablen verwandt ist und obwohl ich CROSS_COMPILE Variable in Terminal hinzugefügt hatte, hätte ich es zu meinem Kit Umweltvariablen hinzugefügt haben.

so der Satz ${CROSS_COMPILE}g++ in MakeFile war einfach g ++ und die Ausgabe war eine binäre Kompilierung mit System g ++.

Ich weiß, dass es etwas war, das ich früher hätte finden sollen, aber etwas, das diese Dummheit irgendwo im Internet für Anfänger wie mich sein sollte. Hoffentlich findet die nächste Person, die auf dasselbe Problem stößt, diesen Beitrag.

0

Die Anweisungen auf der Xilinx-Seite zeigen, wie man einen Cross-Compiler für ARM baut, aber ich glaube, sie haben angenommen, dass Sie diese Schritte auf der 32-Bit-Linux-Plattform befolgen werden. Auf der anderen Seite -xplatform qws/linux-arm-gnueabi-g++ Option sollte 32-Bit-Compiler erzeugen.

Sind Sie sicher, dass Ihr Code mit dem richtigen Compiler-Build mit der richtigen Option erstellt wurde? Haben Sie versucht, irgendein minimales Beispiel von der Kommandozeile aus zu erstellen und zu überprüfen, was der Befehl file Ihnen über die erzeugte Binärdatei sagt? Für mich sieht es so aus, kompilieren Sie Ihr Projekt nicht wirklich.

+0

Ich überprüfte den Compiler in meinem Kit. Es ist der g ++ - Compiler, der auf der Board-CD zur Verfügung gestellt wird, und das Ausführen von -v besagt, dass das Ziel "arm-xilinx-linux-gnueabi" lautet. und ja kompiliert eine Probe Hallo Welt mit dem Kit in einer 64-Bit-Binärdatei. –

+0

Also, wenn Ihr ARM auf Zynq 32 bit ist, dann haben Sie den falschen Compiler - sorry. Bitten Sie Xilinx um Hilfe. –