[Qt] Linux-Programm unter Windows kompilieren



  • Hallo,

    wie kann ich mein Programm unter Windows für Linux kompilieren. Ich benötige einen Cross-Compiler das weiß ich, jedoch spuckte mir Google immer nur Ergebnise von Windows-Programm unter Linux kompilieren.
    Kennt sich jemand damit aus?
    Oder wäre es einfacher einfach Qt unter Ubutu zu installieren und dort einfach zu kompilieren?



  • halloQt schrieb:

    Oder wäre es einfacher einfach Qt unter Ubutu zu installieren und dort einfach zu kompilieren?

    Ja



  • Am Einfachsten ginge es mit einer VM, in der das Zielsystem läuft.

    Ansonsten gibt es recht einfache Lösungen unter Linux, z.B. http://mxe.cc/ - wie hier in der Antwort beschrieben mit Qt: http://stackoverflow.com/questions/14170590/building-qt-5-on-linux-for-windows/14170591#14170591



  • Schonmal danke für eure Antworten 🙂

    Ich habe nun Ubuntu in der Virtual Box eingerichtet, Qt installiert und g++ installiert. Soweit so gut, nur leider läuft keine GUI-Anwendung. Konsolenanwendungen laufen Problemlos.
    Ich bekomme anscheinend 2 Linker-Fehler:
    cannot find -lGL
    collect2: error: ld returned 1 exit status

    Muss ich da noch etwas an den Einstellungen machen? Mittels Googeln hab ich auch nur Threads mit Eigenverschuldung gefunden, jedoch hab ich hier das Sample-Projekt verwendet.



  • Dein Linker findet die OpenGL-Lib nicht. Hast du OpenGL installiert, auch die Dev-Pakete?



  • Genau das wars.
    Dankeschön. 🙂



  • Ich mache es genauso. Im einer VM habe ich jeweils ein Mint Linux als 32bit und als 64bit Installiert. Dann mit folgenden Zeilen im Terminal die nötigen Dateien installiert:

    - sudo apt-get install build-essential		(gcc mit header und make-system)
    - sudo apt-get install libglu1-mesa-dev		(für OpenGL unterstützung)
    - sudo apt-get install valgrind			(für Programmanalyse im Qt-Creator)
    

    Und dann einfach QT heruntergeladen und installiert. Der Compiler und Valgrind werden ohne Probleme gefunden und in den Qt-Creator eingebunden. 🙂



  • Danke @Netzschleicher. Ich hab es zu umständlich gemacht, aber bin auch ins Ziel gekommen. Beim nächsten mal verwende ich deine Variante. 🙂



  • Habe jetzt aber noch eine Frage.
    Was muss der End-Benutzer dann noch per Terminal installieren, damit er mein Programm öffnen und ausführen kann?



  • Er muss alle Libs installiert haben, die dynamisch gelinkt wurden. Also alle aus der Ausgabe von " ldd meinexecutable ". Wahrscheinlich ist alles standardmäßig schon installiert, bis auf vielleicht Qt. Wenn er KDE benutzt, hat er das auch auf jeden Fall schon.



  • Danke für Deine Antwort.

    Ich habe jetzt mal den Befehl ausgeführt, den Du mir gegeben hast. Jetzt bekomme ich auf meinem Test-System (nicht das Developer-System) diese Ausgabe:

    linux-gate.so.1 =>  (0xb778e000)
    libQt5Widgets.so.5 => not found
    libQt5Gui.so.5 => not found
    libQt5Core.so.5 => not found
    libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb7690000)
    libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb7673000)
    libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb74c0000)
    libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb747d000)
    /lib/ld-linux.so.2 (0xb778f000)
    

    Sagen wir mal er benutzt Ubuntu oder Mint, was muss dieser dann alles per sudo apt-get install installieren?



  • Bis auf Qt 5 sollte alles bei den meisten Linux-Systemen vorhanden sein.

    Bei Ubuntu und Debian ab Jessie (aktuell Testing, bald Debian 😎 wäre das dann damit erledigt:

    sudo apt-get install qt5-default
    

    Da Mint auf Ubuntu basiert, dürfte es dort genauso gehen.



  • Super, Dankeschön. Es funktioniert.


Anmelden zum Antworten