Windows IDE zur Linux cross compiling (debugging)



  • Guten Morgen Leute,

    ich bekomme vermutlich eine ganz neue Herausforderung => c++ Native Code für Linux. (Und ja ich habe "keine"
    Ahnung von Linux somal vorweg.. mal bissel mit Putty etc. rumgespielt aber nicht vernünftiges.) Also bitte keinen
    Shitstorm jetzt hehe..

    Hintergrund für eine Firmeneigens entwickeltes Framework (eine Art Automatisierung Steuerung mit Scripting) wird
    wird der native code auf Linux Hardware oder auch als Windows App etc. gebaut. d.h. Achtung gefährliches Halbwissen.
    (Welche Linux Distro etc. verwendet wird kann ich (wenn es wichtig ist) in Erfahrung bringen)

    Aber egal, ich weiß dass die Leute hier um Linux Code zu kompilieren GCC und Eclipse als IDE nehmen. Und ich muss mich vll. auch damit abfinden. Aber ich mag Eclipse gar nicht, kannte es auch frühr von der Uni als wir damit Java programmierten... vll. einfach voreingenommen.

    Dann habe ich mal bissel recherchiert und gesehen das Visual Studio Code eine GCC Windows Linux WSL Extension hat,
    damit sollte es doch auch möglich sein.

    Frage: Habt Ihr damit Erfahrungen gemacht? Könnt ihr mir evtl. die beiden Möglichkeiten gegenüberstellen?

    Oder kann ich aus Visual Studio nehmen? 2019 (da habe ich noch im Hinterkopf dass es da was mit Linux devepment gab)

    Wäre schöne wenn ihr bissel was zu sagen hättet:)

    Danke Euch



  • Crosscompiling macht die Sache nur komplizierter und sollte man eines Erachtens für Anfänger (meint Linux Anfänger) erstmal außer acht lassen. Gibt es den Port schon oder sollst Du den Port auf Linux durchführen?



  • @SoIntMan Ist zwar schon ewig her, dass ich mal Eclipse als C++ IDE genommen habe, aber meine Erinnerungen sind grauenhaft... ich bin damals auf 'nen Texteditor umgestiegen (VIM :D), weil mich das so genervt hat und, Visual Studio Code, gab es damals noch nicht.
    Kann natürlich sein, dass das inzwischen deutlich besser geworden ist, kann ich nicht beurteilen.

    Was gehen soll, ist von Windows aus, mittels Visual Studio auf Linux kompilieren über das Windows Subsystem for Linux. Achtung: Auch das habe ich noch nicht selbst gemacht, aber mal auf 'ner Konferenz von einem Microsoft Kollegen präsentiert bekommen:
    https://devblogs.microsoft.com/cppblog/targeting-windows-subsystem-for-linux-from-visual-studio/



  • @john-0 sagte in Windows IDE zur Linux cross compiling (debugging):

    Crosscompiling macht die Sache nur komplizierter und sollte man eines Erachtens für Anfänger (meint Linux Anfänger) erstmal außer acht lassen. Gibt es den Port schon oder sollst Du den Port auf Linux durchführen?

    Das Framework ist schon von vorneweg Multiplattform technisch konzipiert, je nach HW wird eben eine andere Implementierungsschicht BSP (HAL) verwendet.

    Meine Aufgabe wäre es nur einen kleinen I/O Erweiterung für ne Linux Maschine zu entwickeln.

    Ich hab auch schon vor langem eine IDE Toolbench bekommen Eclipse + GCC etc. für ein Linux Gerät , hat auch damit
    geklappt aber war echt nicht schön .. konnte nicht Debuggen etc. einfach ein binary builden aufspielen und laufen lassen.

    Bin einfach interessiert , wahrscheinloch ein steiniger Weg anfangs 🙂

    @Schlangenmensch sagte in Windows IDE zur Linux cross compiling (debugging):

    Was gehen soll, ist von Windows aus, mittels Visual Studio auf Linux kompilieren über das Windows Subsystem for Linux. Achtung: Auch das habe ich noch nicht selbst gemacht, aber mal auf 'ner Konferenz von einem Microsoft Kollegen präsentiert bekommen:
    https://devblogs.microsoft.com/cppblog/targeting-windows-subsystem-for-linux-from-visual-studio/

    Das wäre cool, ich denke die Sache schein auch "rund" zu funktionieren. D.h. hier wird Vs2019 verwendet.!?

    Benutzt wer von euch VisualStudio (Code) für sowas.

    P.s. Klar ist Cross Compiling kompliziert .. ich kenn mich kaum aus.. aber Komfortzone verlassen und los:)



  • Hallo @SoIntMan ,
    Mein Vorgehen ist ein bisschen von Qt beeinflusst, aber ich komme damit zurecht.

    • Entwickeln unter Windows 10 mit Visual Studio 2019 (C++) bis lauffähige Version.

    • Anpassen für MinGW unter Windows 10 mit dem QtCreator (dafür wird ein QtCreator Projekt gemacht).

    • In einer VM unter Linux (Qt ist installiert) QtCreator-Projekt für MinGW übernehmen und neben gcc noch ggf. den clang Kompiler einbinden (hat bessere Warnungen). Die Sourcen sind durch mounten die vom Windows-System. Darum Änderungen nur unter Windows wegen Zeilenumbruch.

    Ich nutze obiges Vorgehen auch für nicht Qt-Gui-Projekte. Darum könnte es auch etwas anderes als der QtCreator sein. Auch die Anpassungen an MinGW sind ja nicht notwendig.

    Aber mit der VM (Linux) habe ich auf meinem Gerät Zugriff auf die Sourcen ohne diese Vorzugsweise mit GIT zwischen zwei Maschinen hin und her zu schaufeln. Zudem kann ich für gcc notwendige Anpassungen in Visual Studio vornehmen und gleich auch dafür testen.

    Aber auch ich habe noch keine Erfahrung mit „Windows Subsystem for Linux“ (bindet man dann gcc in Visual Studio ein?); könnte sein, dass man sich damit das ganze Geraffel mit Linux in der VM sparen kann.



  • Wsl2 installieren und ein Linux deiner Wahl dort zum direkten kompilieren nutzen. Wenn du IDEs bzw GUI-Editoren haben willst brauchst du noch einen XServer für Windows. Ich nehm VcXSrv, geht problemlos.



  • @SoIntMan sagte in Windows IDE zur Linux cross compiling (debugging):

    Ich hab auch schon vor langem eine IDE Toolbench bekommen Eclipse + GCC etc. für ein Linux Gerät , hat auch damit
    geklappt aber war echt nicht schön .. konnte nicht Debuggen etc. einfach ein binary builden aufspielen und laufen lassen.

    Der Punkt ist. Wie wird das Projekt gebaut, durch Eclipse selbst, aber gibt es Makefiles, was für ein Sourcecode Verwaltung wird genutzt, … ?

    Wenn man ein Makefile Projekt nutzt, dann kann man das in Eclipse, Netbeans, VisualStudio Code, … nutzen, und es wird immer funktionieren. Wenn stattdessen nur VS und Netbeans Projektdateien vorhanden sind 😞 .

    Was das Thema Debugging betrifft. Da erzeugt man ein Binary mit Debug Infos und nimmt den Debugger seiner Wahl z.B. den Debugger im Qt Creator kann man wunderbar auch für Programme von anderen Compilern nutzen. Das Nonplusultra ist natürlich so ein Tool wie TotalView, bei dem kann man das Programm rückwärts laufen lasse, um Fehler zu finden. Für Speicherfehler unter Linux das Tool der Wahl valgrind (meines Wissen gibt es das für Windows nicht).



  • Es gibt aber auch Cross-Plattform Alternativen für valgrind, z.B. Dr. Memory.



  • @john-0 sagte in Windows IDE zur Linux cross compiling (debugging):

    Der Punkt ist. Wie wird das Projekt gebaut, durch Eclipse selbst, aber gibt es Makefiles, was für ein Sourcecode Verwaltung wird genutzt, … ?
    Wenn man ein Makefile Projekt nutzt, dann kann man das in Eclipse, Netbeans, VisualStudio Code, … nutzen, und es wird immer funktionieren. Wenn stattdessen nur VS und Netbeans Projektdateien vorhanden sind .

    Ja da hast du recht, es wird "glaube" ich wirklich makefiles vewendet, und Git CI/DI .. d.h. ich müsste das ohne weitere dann auch in Visual Studio machen können!?

    Ok gut debugger und so.. bis ich mal so weit bin hmm😄



  • @SoIntMan sagte in Windows IDE zur Linux cross compiling (debugging):

    Ja da hast du recht, es wird "glaube" ich wirklich makefiles vewendet, und Git CI/DI .. d.h. ich müsste das ohne weitere dann auch in Visual Studio machen können!?

    VisualStudio Code funktioniert mit Makefiles problemlos. (VisualStudio gibt es für Linux ja nicht.) D.h. Du editierst das Programm in VS Code und kannst direkt aus dem Editor den Make Prozess anwerfen, Programm ausführen, …. VS Code enthält selbst keinen Debugger, aber ein externer lässt sich konfigurieren und aus VS Code aufrufen. Eclipse CDT enthält ein GUI FrontEnd für gdb, so dass man direkt in Eclipse debuggen kann.



  • @john-0 sagte in Windows IDE zur Linux cross compiling (debugging):

    Eclipse CDT enthält ein GUI FrontEnd für gdb, so dass man direkt in Eclipse debuggen kann.

    hmm .. ah da liegt dann die Vermutung nah, dass deswegen Eclipse hier intern verwendet wird.

    Wsl2 installieren und ein Linux deiner Wahl dort zum direkten kompilieren nutzen. Wenn du IDEs bzw GUI-Editoren haben willst brauchst du noch einen XServer für Windows. Ich nehm VcXSrv, geht problemlos.

    hmm ok dachte wsl2 hat das irgendwie alle schon on-board



  • @SoIntMan sagte in Windows IDE zur Linux cross compiling (debugging):

    Wsl2 installieren und ein Linux deiner Wahl dort zum direkten kompilieren nutzen. Wenn du IDEs bzw GUI-Editoren haben willst brauchst du noch einen XServer für Windows. Ich nehm VcXSrv, geht problemlos.

    hmm ok dachte wsl2 hat das irgendwie alle schon on-board

    Wie meinst du das? Wsl2 ist im Grunde eine VM. Da musst du wie bei anderen VMs odfer Hardware halt ein OS drauf tun. In diesem speziellen Fall sind das bestimmte Linux-Distros. Auf denmen kannst du installieren was du lustig bist, inklusive Compiler, Skriptsprachen etc. Der XServer muss schon seit jeher auf der Maschine laufen auf der die Apps angezeigt werden sollen. Das wäre hier die Windows Maschine und die hat keinen mitgeliefert.



  • @Tyrdal sagte in Windows IDE zur Linux cross compiling (debugging):

    Wie meinst du das? Wsl2 ist im Grunde eine VM. Da musst du wie bei anderen VMs odfer Hardware halt ein OS drauf tun. In diesem speziellen Fall sind das bestimmte Linux-Distros. Auf denmen kannst du installieren was du lustig bist, inklusive Compiler, Skriptsprachen etc. Der XServer muss schon seit jeher auf der Maschine laufen auf der die Apps angezeigt werden sollen. Das wäre hier die Windows Maschine und die hat keinen mitgeliefert.

    Sorry.. hab nicht nachgedacht bei der Antwort:) .. danke für deine Feedback


Anmelden zum Antworten