Forum: PC-Programmierung QT Applikationen für linux ARM


von Peterle A. (Firma: keine) (wanderameise)


Lesenswert?

Hallo,

mal ne kleine Frage bzgl. QT und embedded Linux:

Auf meinem Ubuntu habe ich Qt-4.8 installiert. Ich möchte nun ein 
Projekt aus dem QT Exmaples-Verzeichnis für mein Linux-ARM System 
erzeugen. Dafür erstelle ich via Qmake ein Makefile. Dabei gebe ich an, 
das ich als toolchain natürlich meine ARM-Linux-g++ toolchain benutzen 
möchte. Jedoch erhalte ich bei einem make folgende Meldung:

"... in file qatomic_i386.h: error: impossible constraint in 'asm'"

Klar, er inkludiert mir hier eine header für die falsche Architektur. 
Ich frage mich deshalb, was ich noch vergessen habe zu konfigurieren, um 
binaries für meinen ARM zu bauen.

Die Qt libs für das Linux ARM habe ich via buildroot in das filesystem 
eingebaut.

Kann mir jmd bei diesem Dilemma helfen?

gruß

: Verschoben durch Moderator
von netseal (Gast)


Lesenswert?

naja, wahrscheinlich musst du auch die include pfade anpassen.
-I........
Allerdings kann es ganz schön kompliziert werden, wenn du den 
Cross-Compiler
selbst einrichten musst. Kannst du nicht auf dem Linux-Board 
compilieren?
Wenn du all möglichen Tests vorher auf dem PC gemacht hast, dann ist der 
Aufwand nicht mehr ganz so groß.


Grüße
Florian

von Peterle A. (Firma: keine) (wanderameise)


Lesenswert?

Was heisst selbst einrichten? Der Cross-Compiler existiert ja schon. QT 
für das embedded linux wurde in build root gebaut und benutzt shared 
libs. Irgendwie müssen dieses libs mit eingebunden werden.

Leider enthält das ZielSystem keine build Umgebung, also kann ich nicht 
nativ bauen.

von netseal (Gast)


Lesenswert?

Hallo,

ich denke du musst beim Aufruf von qmake eine passende mkspec angeben.

hier ist eine für einen Arm.
http://qt.gitorious.org/qt/qtbase/blobs/204176483c7bc2490663b51089e3a4bc813cc1f4/mkspecs/devices/linux-beagleboard-g++/qmake.conf

Müsste mal genau ausgehäckt werden.

Grüße
Florian

von Peterle A. (Firma: keine) (wanderameise)


Lesenswert?

Diese qmake.conf files werden auch benutzt um Qt selbst zu bauen, zB für 
ARM targets. Heisst also, das diese conf files für Qt selbst und für 
entsprechende Applikationen benutzt werden??

ich bin verwirrt!

von netseal (Gast)


Lesenswert?

Klar, dafür werden die auch verwendet.
Du musst wohl hingehen und eine spezielle spec anlegen.
Zunächst finde ich die Zeilen:

QMAKE_INCDIR_EGL        = $$[QT_SYSROOT]/usr/include

QMAKE_LIBDIR_EGL        = $$[QT_SYSROOT]/usr/lib


interessant.

Grüße
Florian

von Qt User (Gast)


Lesenswert?


von ananas (Gast)


Lesenswert?

ahh ich Idiot. habs gelöst. hier unter anderem die nötigen variablen für 
die qmake.conf:

QMAKE_CFLAGS           += -O3 -march=armv5te
QMAKE_CXXFLAGS         += -O3 -march=armv5te
QMAKE_INCDIR_QT    = 
/home/user/arm/toolchain/buildroot-2010.11/output/staging/usr/include
QMAKE_LIBDIR_QT    = 
/home/user/arm/toolchain/buildroot-2010.11/output/staging/usr/lib

ausserdem sollte man das QT/bin verzeichnis nicht im path haben, wenn 
man mit den ARM-libs bauen möchte :)

Anfängerfehler!

danke trotzdem an alle

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.