Cross Development, bzw. womit entwickeld für Linux?



  • Hallo,
    ich werde in Zukunft wohl auch für Ubuntu entwicklen müssen/dürfen und suche nach Entwicklungsumgebungen f. Linux. Zu Hause bin ich seit Jahren meist auf Windows (neben 2 Embedded OS-Systemen). Sprache ist C/C++

    Es gibt da ja unterschiedliche Ansätze. MS hat ein Plugin für VS, ähnlich zu
    dem von http://sysprogs.com, mit dem sich unter Windows Entwickeln & Debuggen lässt. VS hat eine Verbindung zu einem Linux-System, compiliert wird dann tatsächlich auf dem Target-System. (es gibt wohl noch 1-2 weitere Anbieter von solchen Plugins)

    Dann gibt es ja auch den VSCode von MS, der auf diversen Plattformen läuft (hab ich aber noch nicht getestet).

    Wie / womit entwickelt ihr für Linux? Wie gesagt, ich bin jetzt schon Jahre die MS-Umgebung gewohnt, auf vi, emacs usw. wollte ich nur in "Notfällen" zurückgreifen müssen 🙂



  • CLion von JetBrains ist (auf Linux) die beste IDE fuer C und C++, die ich kenne. Allgemein hat JetBrains tolle IDEs.

    Alles andere wie Eclipse oder CodeBlocks ist einfach nur Bullshit - da ist man mit vim (und ein paar Plugins) besser bedient.



  • Die Frage ist, wie "tief" du auf Linux(besonderheiten) eingehen musst.

    Programmierst Du auf ner "abstrakten" Ebene, also wo Du bibs verwendest, die dir Plattformuanbhängigkeiten bieten (z.b. boost, Qt und co), dann würd ich weiter unter deinem bisherigen System entwickeln (windows + VS) aber extensiven gebrauch von Buildgeneratoren und Konfig Managment Tools machen (cmake, qmake, gradle und co ...).

    Dann kannst deine Programme schon unter windows entwickeln und musst unter Linux nur noch mittels den builgeneratoren bauen und "testen".
    Falls doch mal unter linux dann ne Besonderheit Debuggen musst, kann man "fix" mit dem gdb auf kommandozeile rumeiern. Ist zwar nicht schnell und intuitiv, aber schneller als ne IDE aufzusetzen.

    Hast mehr mit Linux zu tun oder musst Linux spezifische Dinge tun, dann ist das einarbeiten in ne IDE dein geringstes Problem .-)

    WIe gesagt mit Buildgeneratoren hasst ne gute grundlage für plattformunabhaengige Konfigurationen, die geben dir dann auch die "Struktur" deiner Projekte vor.
    Die IDE ist muss dann nur noch externe Builds unterstützen (das tun eh die meisten) ... und ist geschmackssache.
    Eclipse, KDevelop, QtCreator netbeans + C++ Plugin etc, geht alles ....

    Ciao ..



  • Hallo,
    also die Linux-Box (so nenne ich die HW mal) soll bestehende Embedded-Systeme ersetzten. Ich werde also diverse HW-Schnittstellen ansprechen (z.B. serielle Ports), Netzwerk-Programmieren (TCP-Sockets), wohl wird auch Multithreading zu benutzen sein.

    "Tief" ist relativ, aber ich denke, das ist schon relativ systemnah.....

    Spricht irgendwas gegen diese Plugins für VS? Auf den ersten (und zweiten) Blick scheint mir der Ansatz für einen Windows-Programmierer ziemlich attraktiv....



  • Naja, nativ debuggen ist immer noch was anderes als cross compilieren und remote debuggen.
    Wenn wirklich "systemnah" unterwegs sein willst, wär es sicher von vorteil, gleich auf dem System nen debugger zu haben ...
    Allerdings kenn ich mich mit Remote Debuggen ned wirklich gut aus ... Da können andere sicher bessere Tips geben.

    Linux/Unix an sich ist schon spannend, besonders wenn man nur unter windows unterwegs war. Wenn das System wirklich besser kennen und verstehen lernen willst, sollest auch komplett da drunter entwicklen ....
    Ich weiss nicht wie Performant deine BOX ist und obs Spass damit macht.
    Soll das Teil eigentlich ne eigene GUI haben oder eher headless laufen ?

    (z.B. serielle Ports), Netzwerk-Programmieren (TCP-Sockets), wohl wird auch Multithreading

    Gibts für alles plattformunabhaengige Libs für (boost z.b.). Ist noch nix bei, weswegen man auf plattformunabhaengigkeit verzichten sollte ...

    Ciao ...



  • Ich verwend unter Linux normalerweise Code::Blocks. Wenn ich das nächste Mal wieder mal mehr unter Linux arbeiten muss, werd ich mir vermutlich VS Code anschaun...



  • ups, da hab ich wohl was mit vsCode verwechselt ^^

    wie gesagt lern mit Build-generatoren umzugehen, dann ist die IDE eher geschmackssache.
    Erfahrungen haben wir mit:
    eclipse - geht, aber es ist zeimlich viel Aufwand(geklicke) ein funktionierendes Eclispe-Projekt aus nem cmake zu erzeugen ... und norwalerweisse checkt man IDE Spezifisches zeugs ja nicht ein ....
    Syntax Highlighting und CodeVervollständigung kommen fast an VS ran.
    fühlt sich auch etwas "lahm" an

    QtCreator / codeblocks / Anjuta - passt von der struktur her eher zu cmake/qmake projekten, also weniger IDE spezifisches zeugs zu pflegen ...
    Hat so alles seine Vor und Nachteile ....
    Syntax Highlighting und Assistenten sind lange ned so wie in VS.

    CLion - hab ich nur kurz angetestet, ist selber cmake basierend, hab aber probleme gehabt, generische out of source builds in das projekt zu importieren ...
    Ist sicher die Beste Lösung wenn du "nur" für das Zielsystem Projekte erzeugen willst.
    Und war ne Weile her, als ich mir das angeschaut hab ...
    Kosten beachten.

    Ciao ...



  • Schaue dir mal kdevelop an kommt visualstudio am nächsten würde ich mal behaupten.

    https://www.kdevelop.org/



  • Erstmal: Gute Entscheidung! Ich hab seit Jahren auf keinem Windows mehr gecoded, diese lästige Fummelei mit den Dependencies kann einfach nicht gegen apt-get foo anstinken. Und nun zu deiner Frage:

    Ich habe im Laufe der Zeit die meisten wichtigen Umgebungen getestet, über die man so stolpern kann und will dich/euch gern an meinen Erfahrungen teilhaben lassen:

    kDevelop: Nicht sehr lang benutzt, aber mir hat der CMake-Support gefehlt, kann sein, dass der mittlerweile nachgerüstet wurde. Trotzdem machte es nen ganz soliden Eindruck.

    Code::Blocks: Eine Hassliebe. Hab C::B sehr lang benutzt, auch unter Windows. Was zunächst ganz cool war, hat sich dann leider im Verlauf der C++-Versionen drastisch geändert. Hatte sehr viele Crashes und die Autocompletition war zuletzt auch nur noch Makulatur. Insgesamt fehlt mir hier das etwas 'professionellere' Equipment wie z.B. gutes Refactoring oder DoxyGen-Support im Editor.

    CodeLite: Ich hab's versucht, bin aber nicht am Eindruck vorbeigekommen, dass es sich hier lediglich um ein Code::Blocks mit weniger Features handelt. Hat sich ein bischen angefühlt wie MonoDevelop, was jetzt einige erfreut und andere zum kotzen bringen könnte. Ich gehöre zweiterer Gruppe an und hab daher CodeLite links liegen lassen.

    Eclipse CDT: Habe ich seeeehr lange verwendet, auch für Java und PHP, und kann auch nicht unbedingt von abraten. Allerdings ist mir Eclipse umgekehrt viel zu Feature bloated. Es sind hier Kleinigkeiten, die mir aber im Alltag unglaublich auf den Zeiger gehen. Beispielsweise finde ich die Benutzeroberfläche unsäglich unübersichtlich und mich nervt, ständig beim Switchen der Workspaces 10 Millionen Konfigurationen wieder zurechtzufummeln. Eclipse hat eine sehr eigene Philosophie vom Umgang mit solchen Dingen - der eine mag es, der andere nicht. Aber einen Blick ist es auf jeden Fall wert und auch immer noch meine Nummer 1 der freien IDEs.

    QtCreator: Kann man machen, besonders, wenn man wirklich QT-Interfaces erstellen will. Ich hab das zunächst für meine Abschlussarbeit verwendet, bin dann aber wegen vermisster Makefiles (die nutzen da ja dieses Qt-eigene .pro Format) zurück zu Eclipse. Trotzdem eine ganz gelungene IDE, schon fast etwas zu einfach gestrickt für meinen Geschmack. Würde ich aber trotzdem mal versuchen an deiner Stelle!

    Clion: Was soll ich sagen... ich nutze Clion jetzt seit einigen Monaten und bin offen gestanden begeistert. Habe noch keine zweite so stimmige IDE gesehen, alles findet sich da, wo man es vermutet und man merkt schon, dass die Entwickler halt auch mit irgendwas entwickeln und daher wohl gut einschätzen können, was es braucht, um produktiv zu sein. Ich komm ja aus der CMake-Fankurve und fühl mich hier echt gut aufgehoben, was den Support angeht. Autocomplete sucht seinesgleichen und die Refactoring-Tools funktionieren sogar einigermaßen.
    Der Nachteil: Clion kostet was. Muss jeder für sich entscheiden, ob einem die 10€ im Monat wert sind oder nicht - ich habs jedenfalls nicht bereuht.

    Alle anderen IDEs, die ich so getestet hab (Anjuta, NetBeans usw) mögen gut sein und auch Ihre Anhänger haben, aber mich haben sie nach kurzem Antesten einfach nicht überzeugen können, daher kann ich dazu nix wirklich konstruktives sagen.


Anmelden zum Antworten