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
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
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.
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
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!
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.