tom111
Anmeldungsdatum: 10. Juli 2020
Beiträge: 102
|
Hallo Ubuntu Users & Programmierer. Bin vor ein paar Wochen erst auf Linux umgestiegen. Das aber mittlerweile recht gut. Habe vorher unter W... mit Borland Builder einige kleine C++ Programme für den Häuslichen Gebrauch gestrickt. Bin kein C++ Profiprogrammierer, habe so alle paar Jahre mal ein C++ Programm gemacht. Jetzt wollte ich diese auch auf Linux portieren und habe mir einige IDE s hier im Forum/Wiki angelesen. Hatte irgendwo gelesen, das KDevelop ähnlich zu Borlands Builder sein soll und habe mir gedacht: Ok dann installiere ich mir das halt einmal aus dem Ubuntu Software Tool in mein Ubuntu 20.04. und finde mich dann relativ gut ein. Beim ersten Start gab es bereits eine Fehlermeldung, das ein Modul namens "cmake" nicht installiert sei. OK, habe dieses Modul über das Terminal nachinstalliert. Jetzt gibt es eine andere Fehlermeldung. Failed to configure project 'test_cpp_02' (error message: Configuration failed.). As a result, KDevelop's code understanding will likely be broken.
To fix this issue, please ensure that the project's CMakeLists.txt files are correct, and KDevelop is configured to use the correct CMake version and settings. Then right-click the project item in the projects tool view and click 'Reload'. Unter Project->Open Configuration muss ich anscheinend den richtigen Pfad zu der Datei "CMakeLists.txt" angeben. Ich habe mal nach dieser Datei im System gesucht und finde da mehrere Dateien mit diesem Namen. Jetzt stellt sich die Frage welcher Pfad, muss wo, in die Projektkonfiguration eingeschrieben werden? Könnt ihr mir hierbei bitte helfen? Im Anhang ist noch ein Screenshot von dem Konfigurationstool. Eigentlich sehr schade, das es mit einer Installation eines Programms über das Ubuntu Software Tool, schon wieder nicht ohne Probleme läuft. ☹ Denn das "cmake" ist ja schließlich notwendig und essentiell und es verwundert mich, das dieses nicht mitinstalliert wurde. Eventuell liegt das jetzige Problem ja auch daran das etwas anderes noch fehlt... Ich kenne die Sprache C++, aber halt nicht das KDevelop IDE Programm und deshalb benötige ich bitte eure Hilfe.
- Bilder
|
woko1754
Anmeldungsdatum: 12. November 2008
Beiträge: 801
Wohnort: Lübeck
|
Wenn ich es richtig sehe läuft es bei Dir auf Ubuntu. KDevelop ist aber gedacht zur Entwicklung von QT-Programmen unter KDE. Ich habe KDevelop mal spasseshalber in einer Kubuntu-VM installiert und hatte da keine Probleme. Ich habe jahrelang C++ Anwendungen auf Linux mit Eclipse (https://www.eclipse.org/downloads/packages/) entwickelt. Es ist ein mächtiges Tool und basiert auf Java. Wahrscheinlich reicht Dir etwas einfacheres, aber ich habe keine Ahnung was da unter Ubuntu der Standard ist. Es gibt sehr viele.
|
woko1754
Anmeldungsdatum: 12. November 2008
Beiträge: 801
Wohnort: Lübeck
|
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
Hallo! Die CMakeLists ist das Makefile von cmake. Das müsstest du also in deinem Projekt haben, welches du importieren willst. KDevelop kann aber auch Makefiles lesen, wenn du über die Importfunktion gehst. Das funktioniert über den normalen öffnen-Dialog, wenn du nur ein Verzeichnis auswählst. Also das Verzeichnis mit deinem Programm öffnest und dann ohne eine Datei zu wählen auf „choose“ klickst.
|
tom111
(Themenstarter)
Anmeldungsdatum: 10. Juli 2020
Beiträge: 102
|
Hallo zusammen. Ich danke euch für eure Tipps und Hilfe. Ich werde meine Anfrage aber jetzt als beantwortet erklären. Denn wie es woko1754 schon gesagt hat, gibt es jede Menge anderer IDE. Ich werde auf keinen Fall irgendwelche Zeit dafür verschwenden eine Analyse zu machen, ob das Problem am Ubuntu selbst, oder an einer fehlerhaften Installation durch das Ubuntu Software Tool, oder am KDevelop selber liegt. Ich probiere halt jetzt einfach eine andere IDE aus. Von Eclipse habe ich schon vor Jahren mal etwas davon gehört. Es sollte also eine etablierte IDE sein, wo es sich lohnt mal einen Blick darauf zu werfen. Code::Blocks soll ja auch nicht ganz so schlecht sein... und wenn alles nichts hilft, dann mache ich einen Anfruf "An Jutta" 😀 . Diese Anjuta IDE soll ja das Gegenstück zu KDevelop unter Gnome sein. Allerdings was ich darüber lesen konnte war aber nicht so ganz zufriedenstellend... Naja, ich werde mal sehen. Danke nochmals an euch und ich wünsche ein schönes Wochenende.
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
Was hat dein Problem mit der IDE zu tun? Du hast für dein Projekt nur kein Makefile, so wie ich das verstanden habe. Je nachdem was du programmieren willst, gibt es aber tatsächlich andere IDEs. Man sucht sich ja eigentlich das Werkzeug nach dem Projekt aus, nicht umgekehrt 😉 Für Qt gibt es noch den QtCreator, für GTK gibt es nichts vergleichbares, du kannst aber Eclipse, CodeBlocks, Glade und/oder Anjuta kombinieren. Für Terminalprogramme sind imho alle IDEs ungeeignet, weil sie zu viel Ballast mitbringen. Da bleibe ich lieber bei Emacs/vim.
|
tom111
(Themenstarter)
Anmeldungsdatum: 10. Juli 2020
Beiträge: 102
|
ChickenLipsRfun2eat schrieb: Was hat dein Problem mit der IDE zu tun?
Das Problem ist, das schon die Installation nicht funktioniert hat, so wie es eigentlich sein sollte. Der "normale" Weg ist der, das ich in dem Ubuntu Software Tool den grünen Button "Installieren" anklicke und die IDE installiert wird. Danach starte ich die IDE und lege ein neues Projekt an. KDevelop ist dabei (bzw. soll sein) sogar so gut, das es die richtige Konfiguration des neuen Projektes anhand der Systemumgebung ermittelt und das neu erstellte Projekt mit dem "Code-Stückchen" Hello World befüllt, was man auch als Startoption für seinen einzutippenden Code nehmen kann. Mit diesem "Hello World" sollte man auch in der Lage sein, eine Kompilierung testweise fehlerfrei durchzuführen. Da es aber schon an der Installation gescheitert ist, weil das Paket "cmake" überhaupt nicht installiert wurde und dieses dann zu weiteren Fehlern geführt hat, die so überhaupt nicht auftreten sollten, war ich noch nicht einmal in der Lage, ein neues Projekt überhaupt zu erstellen. Aber das Problem ist jetzt gelöst. Ich möchte hier noch meine weiteren Erfahrungen welche ich noch gemacht habe, mit euch teilen.
Als erstes habe ich KDevelop über das Ubuntu Software Tool wieder deinstalliert. Habe dann halt mal das "Code::Blocks" ebenfalls über das Ubuntu Software Tool installiert, weil dieses sich da gerade so angeboten hatte...
Code::Blocks war aber der Totalreinfall. Nach der Installation war kein Icon zum starten zu finden. Habe dann einen Neustart von Ubuntu machen wollen. Habe dann das erste mal irgendwelche Error-Meldungen von Ubuntu beim Starten gesehen. Nach dem Neustart, der glücklicherweise jetzt wieder ordentlich funktioniert, war dieses "Code::Blocks" auch nicht mehr in dem Ubuntu Software Tool aufzufinden. Schon komisch... 🙄 Aber nun zu der endgültigen Lösung... Dann habe ich halt doch mal "AN"gerufen bei JUTTA 😉 Habe Anjuta auch über das Ubuntu Software Tool installiert. Habe es gestartet und wollte ein neues Projekt anlegen. Auch hier kam eine Meldung das ein benötigtes Paket "GTKmm" nicht vorhanden ist. Habe dieses nachinstalliert und konnte dann auch das neue C++ Projekt anlegen. Auch hier bietet Anjuta einen Code-Schnipsel welchen man als Starter verwenden kann und wo man eine Kompilierung erst einmal damit ausprobieren kann. Aber auch hier gab es erneut ein Problem. Angeblich fehle das Paket "libtool". Wollte auch dieses noch nachinstallieren. Ubuntu sagte mir aber, das dieses bereits in der neuesten Version vorliege. Also im Internet nach diesem Problem nachgesehen. Da wurde ich fast erschlagen, von den vielen Einträgen aus anderen Foren über das selbe Problem. Dadurch war das Problem aber auch schnell behoben. Denn Anjuta ist nicht auf der Suche nach "libtool" sondern nach "libtool-bin". Nachdem ich auch dieses noch nachinstalliert hatte, funktioniert nun Anjuta auch und ich kann nun endlich mit der eigentlichen Programmierarbeit beginnen... Naja, wie Ihr sehen bzw. lesen konntet, ist eine Installation gerade einer IDE nicht ohne...
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
Deswegen ist eine Terminalinstallation immer aussagekräftiger. Da meldet zum Bsp. kdevelop die optionalen Pakete, die es benötigen könnte, wie z.B. cmake. kdevelop funktioniert auch ohne, die Beispiele und Templates aber nicht. Bei anjuta siehst du bspw. die Bibliotheken für GTK C++ als optional. Das mit den Bibliotheken wird dir aber wohlmöglich noch öfter begegenen, je nachdem welche du für deinen Code verwenden willst.
|
tom111
(Themenstarter)
Anmeldungsdatum: 10. Juli 2020
Beiträge: 102
|
ChickenLipsRfun2eat schrieb:
Das mit den Bibliotheken wird dir aber wohlmöglich noch öfter begegenen, je nachdem welche du für deinen Code verwenden willst.
Ja, das habe ich nun auch schon feststellen müssen. 🙄
Unter W... gibt, bzw. für mich gab es, halt andere Bibliotheken, aus denen man seine Objekte erstellt hat. Soweit ich das jetzt mit meinem Linux-Anfängerwissen erst einmal einordnen kann, gibt es unter Linux verschiedene Bibliotheken für C++, unter denen man auswählen muss. So z.B. die GTKmm oder XWidget, oder was es da sonnst noch alles für Linux gibt. Das wird jetzt für mich erst einmal der nächste Schritt sein, herauszufinden welche Bibliothek für mein Projekt die passendste ist. Ich habe jetzt halt mal mit GTKmm gestartet und versuche mich da einzuarbeiten. Ich hoffe mal das diese Bibliothek für meine kleinen hausgemachten Programme ausreichend sein wird. Hatte mir eine Portierung meiner alten W... Programme allerdings doch etwas einfacher vorgestellt als es nun ist. Hatte angenommen, ich könne den "normalen" C++ Code so wie er ist, natürlich mit den benötigten Hardware abhängigen Abänderungen wie z.B. für die Schnittstellen von COM auf TTY usw. einfach übernehmen. So wie es sich aber jetzt zeigt, sind da doch einige Dinge mehr zu beachten und es kommt eigentlich fast einer Neuprogrammierung gleich. Aber dazu muss ich mich halt jetzt erst einmal an die Anforderungen der GTKmm Bibliothek einlernen. Es gibt ja auch Dokumentationen zu GTKmm die mir hierbei weiter helfen werden. Ansonsten bekomme ich ja auch hier im Ubuntu-Forum immer wieder gute Tipps und Hilfe von netten Menschen. Wünsche noch einen schönen Sonntag...
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
Hallo! Ich habe leider keinen Schimmer, was unter Windows „normal“ ist. In meiner Welt gibt es zwei große Desktop-Bibliotheken, mit denen GUI-Programme entwickelt werden: GTK und Qt, nebst einigen kleineren und vielen 2/3D-Engines. Es kommt daher ein wenig darauf an, womit du arbeitest. Manche bieten auch Pakete für beide Welten an oder bedienen sich einer dritten.
|
tom111
(Themenstarter)
Anmeldungsdatum: 10. Juli 2020
Beiträge: 102
|
ChickenLipsRfun2eat schrieb: Hallo! Ich habe leider keinen Schimmer, was unter Windows „normal“ ist.
Unter W... funktionierte auch z.B. Qt. Aber die einfachen Programme konnte ich immer mit den in W... vorhandenen DLLs erstellen. Wie z.B. das Öffnen einer Datei. Da gab es eine DLL im W... wo diese Funktion bzw. Objekt dazu vorhanden war, welches man einfach aufgerufen hatte. Oder wenn man die serielle Schnittstelle ansprechen wollte gab es eine "port.dll", welche man einfach über den C++ Code implementiert hat und die darin vorhandenen Funktionen aufgerufen wurden. Bei der Sache mit der seriellen Schnittstelle, möchte ich mal ganz Laienhaft anfragen, ob hierfür GTK auch Funktionen zur Ansteuerung von Hardware wie z.B. der seriellen Schnittstelle bietet? Oder gibt es dafür unter Linux dann auch eine eigene Bibliothek, oder so etwas ähnliches wie eine DLL? Die bei W... verwendete "port.dll" kann ich ja unter Linux nicht verwenden, denn die unterstützt ja COM und nicht TTY. Ach ja... es sieht doch sehr danach aus, als müsse ich mich erst einmal komplett neu orientieren. 🙄 ChickenLipsRfun2eat schrieb: Hallo! In meiner Welt gibt es zwei große Desktop-Bibliotheken, mit denen GUI-Programme entwickelt werden: GTK und Qt
Danke für deine Grundlegende Information über die verwendeten Bibliotheken. Ich habe jetzt mit GTK (bzw. GTKmm für das C++) begonnen und werde mich damit jetzt auch weiter beschäftigen.
So leistungsfähig waren meine kleinen Programme ja nicht. Ein bisschen Kommunikation mit einem Mikrocontroller über die serielle Schnittstelle und das laden und speichern von Daten. Eventuell ein bisschen Datenberechnung und das war es dann auch schon... Ich danke dir ChickenLipsRfun2eat das du mir so klasse dabei hilfst, mich bei der Programmierung in der Linux-Welt zurecht zu finden.
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
Es gibt sicherlich für tty auch fertige Bibliotheken, mir fällt auf Anhieb nur termios (man termios ) ein, ist aber eine C-Bibliothek. Prinzipiell brauchst du unter „Linuxen“ nur filehandler, da alles eine Datei ist. Du kannst also die /dev/ttyXY zum Schreiben öffnen, brauchst dazu allerdings root-Rechte oder musst dein Programm mittels PolicyKit dazu bringen, sich diese zu holen. Ein Beispiel wäre | pkttyagent & pkexec chmod +r /dev/input/eventX
|
X steht da für eine Nummer, z.B. die der Tastatur oder Maus (/dev/input/mouse0/mice). Der policykit-tty-agent wird gestartet, mit & in den Hintergrund geschoben und dann pkexec mit chmod aufgerufen, um Leserechte zu bekommen. Hardware ansteuern ist aber unter Linux (fast) immer in C implementiert. Ggf. kannst du die BOOST-Bibliotheken nutzen, die recht beliebt und umfangreich sind. Und du kannst natürlich die STL nutzen. Für die Interprozesskommunkation gibt es den DBus, und diverse „signal and slot“ - Konzepte. Python hat auch für alles eine Bibliothek, wenn du nicht all zu zeitkritische Anwendungen schreibst. Da gibt es auch vieles, was über C-Plugins realisiert ist und daher nicht wirklich langsam läuft.
|
tom111
(Themenstarter)
Anmeldungsdatum: 10. Juli 2020
Beiträge: 102
|
Hallo ChickenLipsRfun2eat. Erst einmal einen ganz Großen herzlichen Dank an dich, für deine ausführlichen Tipps und Informationen.
Die Menge an den super Informationen, ist jetzt aber ausreichend, um in den nächsten Tagen mich damit auseinander zu setzen. Da gibt es jetzt erst einmal viiiiiiiiel für mich zu lernen und auszuprobieren. Da ja das Thema meiner gestarteten Anfrage eigentlich ein ganz anderes ist, belasse ich es auch hierbei und wenn ich nach meiner Eigenschulung noch Fragen habe, mache ich dann besser eine neue Anfrage hier im Forum. Der Tipp mit Python ist jedenfalls auch nicht schlecht. Vor ein paar Jahren hatte ich schon mal unter W... einen kleinen Kontakt mit dieser Script-Sprache gehabt. Auch Anjuta kann man ja für Python-Programmierung verwenden. Echt klasse, das du mir so toll geholfen hast. 😀 Deine Informationen haben mir jetzt bestimmt einige Tage Zeit erspart... Dann bis vielleicht zum nächsten Mal. Gruß Tom.
|
ChickenLipsRfun2eat
Anmeldungsdatum: 6. Dezember 2009
Beiträge: 12067
|
Hallo! Ich kam mal dazu mir Anjuta anzusehen. Scheint auch ein ziemlich veraltetes Teil zu sein. Verwenden konnte ich es gar nicht, da es beim Öffnen von allem außer Textdateien schlichtweg hängen blieb (vermutlich Wayland geschuldet). Offenbar gibt es jetzt den gnome-builder, der in Verbindung mit glade eine aktuelle GNOME-IDE darstellt.
|