Archiv verlassen und diese Seite im Standarddesign anzeigen : Softwareentwicklung unter Linux
Hallo,
ich plane ein C++ Projekt, das ich z.Z unter Windows entwickele, auf Linux (Ubuntu LTS) zu portieren. Das Projekt besteht z.Z. aus einer statisch Lib, einer Dll und eines Programmes zum Testen der Dll-Funktionen. Entwickelt wird unter Windows mit Visual Studio und Einsatz diverser Libs (Boost, RealSense SDK, OpenCV und PCL).
Primär geht es mir erst mal um die z.Z bevorzugte Vorgehensweise bei der Entwicklung unter Linux, kann mir jemand ein gutes Buch/ Online Tutorial empfehlen?
Welche Tools sind z.Z am besten für die C++ Entwicklung unter Linux geeignet?
Unter Windows habe ich die Libs wie z.B PCL oder OpenCV aus Sourcen kompiliert und dort wurde CMake eingesetzt. Ist das der bevorzugter Weg unter Linux z.Z? Oder doch eher eine Entwicklungsumgebung wie z.B QT Creator oder KDevelop? GUI ist erstmal nicht so wichtig, gesteuert wird das Programm aus der Konsole, später soll das Programm dann eventuell auf einen externen Rechner laufen und über Sockets gesteuert werden.
Berniyh
2020-10-04, 22:52:52
Unter Windows habe ich die Libs wie z.B PCL oder OpenCV aus Sourcen kompiliert und dort wurde CMake eingesetzt. Ist das der bevorzugter Weg unter Linux z.Z?
Wenn du nicht spezifische Versionen der Libs benötigst, dann kannst du die einfach aus den Software-Repositories beziehen.
Nur nicht vergessen die -dev Pakete (enthalten die Header) zu installieren.
Oder doch eher eine Entwicklungsumgebung wie z.B QT Creator oder KDevelop?
Das ist halt echt Geschmackssache. Manche mögen Umgebungen wie Eclipse, Creator oder KDevelop, andere nutzen einfach nur Emacs oder vim.
(ok, einfach und die beiden Editoren in einem Satz ist wieder eine ganz eigene Geschichte.)
Von den Entwicklungsumgebungen ist Eclipse glaube ich die populärste, aber am Ende hat da eben jeder seine eigenen Vorlieben. Ist vermutlich am sinnvollsten selbst die entsprechenden Tools mal zu installieren und zu begutachten.
Sind ja zum Glück alle kostenlos und schnell über den Paketmanager installiert/deinstalliert.
clm[k1]
2020-10-04, 23:13:41
Welche Tools sind z.Z am besten für die C++ Entwicklung unter Linux geeignet?
Ich werf mal noch CLion (https://www.jetbrains.com/clion) in den Raum. Lohnt sich aber vermutlich nur, wenn du auch beruflich öfters mit C++ zu tun hast - für ein Hobby-Projekt sind die 200€ ggfs. etwas viel ;)
Bietet aber halt den Komfort und die Zuverlässigkeit, den man von einer IDE von Jetbrains so gewohnt ist.
just my 2 cent
Grundsätzlich würde ich hier Build Systems und IDEs trennen. Welche IDE du verwendest ist nebensächlich. Da du nun Windows und Linux nutzt, würde ich ein Build System nehmen, welches für cross-platform compilation gut geeignet ist und dann kannst du deinen Workflow gleich unter Windows (und zukünftige Projekte) wiederverwenden.
CMake wäre hierfür ein Ansatz (es gibt aber natürlich jede Menge Alternativen zu CMake). Damit kannst du relativ leicht dein Linux Projekt auch für Visual Studio unter Windows zum laufen bringen. Das größte Problem wird sein, die Dependencies und Libraries auch für beide Platformen automatisch aufzusetzen. Wir haben unseren CMake-Workflow so optimiert, dass der Source Code der Dependencies automatisch runtergeladen und für die jeweilige Platform kompiliert wird. Dauert zwar eine Zeit das mit CMake richtig aufzusetzen, aber dafür kannst du dann auf jeder Platform einfach über ein einziges CMake Command alles kompilieren und für deine jeweilige IDE konfigurieren.
Als konstenlose IDE auf jeder Platform würde sich Visual Studio Code anbieten. Persönlich verwende ich auch CLion sehr gerne, da es auch auf den CMake-Workflow ausgerichtet ist, aber wie bereits erwähnt kostet das Ding doch einiges.
Als Lösung für dein Dependency/Library Problem könntest du dir auch den Conan package manager ansehen:
https://conan.io/
CMake ist ein vorgelagertes build system, das hat ja mit der IDE erstmal nichts zu tun. Du kannst dir damit halt fuer unterschiedliche Build-Systeme die weiteren Projektdateien/Skripte raus lassen. Also pflegst du z.B. fuer dein Projekt CMake und kannst dann damit im Build Prozess auf Windows vsbuild Kram und fuer Linux Makefiles raus lassen. Grundsaetzlich ist sowas fuer cross-plattform Entwicklung schon sinnvoll. Eine IDE wie QtCreator unterstuetzt neben CMake auch andere, ob und welche IDE man benutzt ist letztlich eine Geschmacksfrage.
Ich selbst mag CMake nicht, finde es uebermaessig kompliziert und benutze fuer neue Projekte lieber Meson mit Ninja. Da brauche ich mich aber auch nicht um Windows builds zu kuemmern.
vBulletin®, Copyright ©2000-2024, Jelsoft Enterprises Ltd.