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ß
Gast
#2840111
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.
Gast
#2840232
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!
Gast
#2840456
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
Gast
#2840698
Gast
#2840852
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
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.