samtux
Anmeldungsdatum: 25. Dezember 2012
Beiträge: 172
|
Hallo. Ich habe ein Programm geschrieben, dass über HTML5 und Javascript läuft. Um dieses richtig installieren zu können und als "richtiges" Programm erscheinen zu lassen, habe ich mit Qt Creator eine HTML5-Anwendung erstellt. Auf meinem PC (64 Bit) funktioniert das auch super. Da ich das Programm auch Nutzern eines 32 Bit Systems zu Verfügung stellen möchte, kompiliere ich es momentan auf einem alten PC (32 Bit) über Qt Creator. Gibt es eine Möglichkeit, das Programm auch für 32 Bit auf meinem 64 Bit PC zu kompilieren? samtux
|
ulibuck
Anmeldungsdatum: 6. Oktober 2011
Beiträge: 51
|
|
samtux
(Themenstarter)
Anmeldungsdatum: 25. Dezember 2012
Beiträge: 172
|
Wie kann ich denn einen Cross-Compiler einrichten? Ich habe überhaupt keine Erfahrung mit Qt und Qt Creator...
|
chilidude
Anmeldungsdatum: 18. Februar 2010
Beiträge: 867
|
Bei Qt-Creator steht links oben (vertikal) ein Button "Projects" (zwichen Debug und Analyze). Dort drückst du drauf. Dann bekommst du bei "Build & Run" eine Asuwahl der Übersetzungen ("Kits"). In der Regel hast du dort nur eine stehen, die jeweils in Debug und Release-Übersetzung zerfällt. Dort machst du Add-Kits und wählst eine zweite Übersetzung. (Wenn du das nicht sofort auswählen kannst, musst du es nochmal woanders extra einstellen damit du es kannst.) Bei "Build Steps" steht dort die Option "-spec linux-g++-64". Die drehst du dann auf 32. Links unten (vertikale Reihe, oberhalb der Build-Buttons), bei Debug, kannst du dann die Architekturen einzeln selektieren und übersetzen.
|
samtux
(Themenstarter)
Anmeldungsdatum: 25. Dezember 2012
Beiträge: 172
|
Also die Schritte habe ich jetzt erstmal alle gefunden. Allerdings kann ich das Add Kit nicht auswählen (Bild 1). Wo muss ich das einstellen? Wenn ich darunter auf Manage Kits gehe, geht ein Fenster auf, in dem ich das Desktop Kit klonen kann (Bild 2). Geht das auch? [Edit]: Ich habe das jetzt mal versucht. Ich habe da jetzt folgendes eingestellt: Name: Desktop 32Bit Device type: Desktop Device: Local PC (default for Desktop) Sysroot: nichts Compiler: GCC (x86 32bit in /usr/bin) Debugger: System GDB at /usr/bin/gdb Qt version: Qt 5.2.1 in PATH (qt5) Qt mkspec: nichts Dann erscheint aber im gleichen Fenster oben bei der Auflistung vor "Desktop 32Bit" ein rotes Ausrufezeichen. Wenn ich mal drüber hovere kommt folgender Text:
ERROR: The compiler 'GCC (x86 32bit in /usr/bin)' (x86-linux-generic-elf-32bit) cannot produce code for the Qt version 'Qt 5.2.1 in PATH (qt5)' (x86-linux-generic-elf-64bit).
Ich gehe jetzt mal davon aus, dass er will, dass ich auch ein Qt5 für 32 Bit verwende. Allerdings habe ich bei "Qt version" nur die eine Auswahl. Ist die Annahme richtig? Und wie bekomme ich dann das 32bit Qt mit installiert?
- Bilder
|
chilidude
Anmeldungsdatum: 18. Februar 2010
Beiträge: 867
|
Du brauchst natürlich alle Librarys die dein Programm und Qt verwenden nun auch in 32 Bit. Also liegst du mit deiner Einschätzung richtig. Du wirst dir eine 32 Bit Umgebung mittels chroot oder lxc oder irgendeinem anderen Virtualisierer einrichten müssen. http://wiki.ubuntuusers.de/Archiv/32-Bit_chroot Hier steht auch noch was Interessantes nur zur Information unter "4.1.6.6. Using 32-bit compilers on a 64-bit host": https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Developer_Guide/compilers.html Viel Spass! 😛
|
samtux
(Themenstarter)
Anmeldungsdatum: 25. Dezember 2012
Beiträge: 172
|
Ist es auch möglich, dass ich die Libarys in meinem normalem System und nicht über chroot installiere?
So viel ist es ja nicht was ich brauche, nur qt5core und qt5webkit.
|
chilidude
Anmeldungsdatum: 18. Februar 2010
Beiträge: 867
|
Wenn du nur mit gcc arbeiten würdest, dann ja. (Das hat eine Option, steht auch im Link.) Die Frage ist, ob du auch für Qt alle 32-Libs zusammenbekommst. Praktisch kann ein 32-Bit Programm auch unter 64 Bit laufen, nur umgekehrt geht es auf keinen Fall. Das einfachste wird eine Virtualisierung sein, da hast du sofort alles zusammen.
|
samtux
(Themenstarter)
Anmeldungsdatum: 25. Dezember 2012
Beiträge: 172
|
Und muss ich chroot unbedingt auf / installieren oder geht das auch in meinem Home- Ordner? Den Home- Ordner habe ich nämlich auf ner HDD und / auf ner SSD wo der Speicherplatz etwas knapper ist.
|
chilidude
Anmeldungsdatum: 18. Februar 2010
Beiträge: 867
|
Wo sich die 32-Bit-Installation befindet, in die mittels chroot eingewechselt wird, ist egal.
|
samtux
(Themenstarter)
Anmeldungsdatum: 25. Dezember 2012
Beiträge: 172
|
So. Ich habe jetzt alles wie in dem Artikel zu chroot bis einschließlich dchroot nutzen gemacht. Wie muss ich es jetzt machen, damit ich mein Programm als 32Bit kompilieren kann?
|
chilidude
Anmeldungsdatum: 18. Februar 2010
Beiträge: 867
|
Ist das so schwer? Wenn du mit chroot in die 32 Bit Umgebung gewechselt hast, den dortigen Paketmanager nutzen um Qt-Creator zu installieren. Du kannst apt-get verwenden oder synaptic. Bei Letzterem muss die xhost Anweisung (ausserhalb von chroot) ausgeführt werden um grafischen Zugriff zu erhalten. Das muss ohnhin stattfinden, wenn du das 32-Bit-Qt startest. Bevor du das tust würde ich dir dann aber empfehlen, innerhalb des chroot einen neuen Nutzer anzulegen der keine Root-Rechte hat. Auf den wechselst du dann vor dem Start von Qt: Also wie folgt: (http://wiki.ubuntuusers.de/adduser) (Wenn du "/etc" kopiert hast, kannst du diesen Schritt auch überspringen und einen Nutzer von ausserhalb verwenden. Zumindest theoretisch, da noch die Config-Files aus den Home-Ordern fehlen. Ich hab das so auch noch nicht gemacht.)
sudo adduser otto dann:
sudo -iu otto bash dann
qt-creator Voila, schon befindest du dich im 32-Bit Qt-Creator.
|
samtux
(Themenstarter)
Anmeldungsdatum: 25. Dezember 2012
Beiträge: 172
|
Ich habe jetzt QtCreator über chroot gestartet und die .pro Datei von meinem Projekt gestartet. Dann bin ich auf Projects –> Manage Kits und habe Desktop (default) geklont und beim neuen GCC für 32Bit ausgewählt –> Apply –> OK Dann hab ich Add Kit –> Desktop 32Bit Jetzt bin ich wieder auf den Tab Edit habe unten noch Desktop 32Bit Debug ausgewählt und dann bin ich auf Run gegangen. Und da kommen jetzt 2 Fehler:
The Qt version is invalid: qmake does not exist or is not executable
The qmake command "/usr/lib/x86_64-linux-gnu/qt5/bin/qmake" was not found or is not executable. Wie installiere ich denn jetzt Qt noch in 32 Bit? Ich dachte, dass erfolgt gleich mit über die Abhängigkeiten von QtCreator (habe ich über apt-get installiert). Weiterhin ist mir aufgefallen, dass mein Projekt zwar links angezeigt wird, aber der darin enthaltene Quelltext nicht geöffnet wird. (Der Ordner des Projekts geht nicht auf)
|
chilidude
Anmeldungsdatum: 18. Februar 2010
Beiträge: 867
|
Beschreibe jetzt mal im Detail deine letzten drei Schritte. (Kommandoablauf.) Und gehe bitte mal in Qt auf Hilfe "about Qt-Creator". Dort wird auch die Architektur angezeigt. Welche ist es?
|
samtux
(Themenstarter)
Anmeldungsdatum: 25. Dezember 2012
Beiträge: 172
|
Wollte es jetzt nochmal testen aber jetzt geht im QtCreator noch weniger... Ich gehe wie folgt vor:
|