ubuntuusers.de

C++ in Linux

Status: Gelöst | Ubuntu-Version: Ubuntu 10.10 (Maverick Meerkat)
Antworten |

eagle87

(Themenstarter)

Anmeldungsdatum:
29. Dezember 2010

Beiträge: Zähle...

#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[de_DE]=gnome-panel-launcher
Name[de_DE]=Test
Exec=/bin/bash -c '/home/eagle87/Desktop/test.out.desktop; exec /bin/bash -i'
Name=Test
Icon=gnome-panel-launcher

Hab ich versucht, passiert aber nichts (und versteh den Code ehrlich gesagt auch nicht).

Riddle schrieb:

Einfach z.B. als Test.desktop im Ordner Arbeitsfläche anlegen und natürlich den Pfad zum Programm vorher noch durch den zu deinem Programm ersetzen. Ist im Grunde jetzt nur durch Rechtsklick → "Starter anlegen" erzeugt und vieles auf Defaulteinstellungen belassen.

Da passiert das gleiche als wenn ich den Starter wie bisher anlege.

Lysander schrieb:

Ich hatte Dir doch explizit den wiki-Eintrag verlinkt! Hast Du Dir den überhaupt angeguckt?

Ja den hab ich mir angeschaut. Aber als Menüeintrag will ich das Programm nicht. Und die Codeblöcke von der Seite hab ich auch noch nicht kapiert.

Das hat doch nix mit C++ zu tun! Sofern die Shell bei einer Datei das Ausführungsrecht hat, wird sie dieses auch versuchen auszuführen. Du gibst ja die fertig kompilierte und gelinkte Datei an und nicht irgend einen Quellcode.

Hätte ja sein können dass durch den Quellcode etwas entsprechendes in die .out-Datei geschrieben wird.

Irgend wie kommt es mir so vor, als dass Dir so ziemlich alle Grundbegriffe der Shell und der Basiskonzepte von Linux fehlen.

Nun ich hab mich bisher nur soweit in das System eingearbeitet um damit grundlegende Arbeiten durchführen zu können. Darüber hinaus hab hab ich mich noch nicht so sehr damit beschäftigt

Vain

Avatar von Vain

Anmeldungsdatum:
12. April 2008

Beiträge: 2510

Sollte das nicht

Terminal=true

heißen, damit die Geschichte auch in einem Terminal ausgeführt wird? Die exec-Zeile startet jedenfalls kein Terminal sondern nur eine Shell.

Riddle

Avatar von Riddle

Anmeldungsdatum:
27. Juli 2007

Beiträge: 201

Wohnort: 127.0.0.1

Ähm, Mist. Ich hab gestern die falsche Datei reinkopiert mit der ich rumgespielt habe. Terminal muss natürlich true sein damit das klappt (ich hatte da vorher in der oben angegebenen Version noch explizit gnome-terminal in der Exec-Zeile stehen und fand es dann unschön, weil das nur an dieses eine Terminal gebunden war).

eagle87 schrieb:

Da passiert das gleiche als wenn ich den Starter wie bisher anlege.

Der Starter den du bisher gezeigt hast war nur ein umbenanntes Programm. Was hast du denn beim Starter anlegen in die einzelnen Felder eingetragen? Man kann dir einfach nicht helfen, wenn man dir jede noch so kleine Information aus der Nase ziehen muss.

lilith2k3

Avatar von lilith2k3

Anmeldungsdatum:
14. Dezember 2006

Beiträge: 2999

Wohnort: OS

Was genau sind ELF-Dateien?

Quasi das Linux-Äquivalent zu .exe-(PE)Dateien.

eagle87

(Themenstarter)

Anmeldungsdatum:
29. Dezember 2010

Beiträge: 85

Riddle schrieb:

Was hast du denn beim Starter anlegen in die einzelnen Felder eingetragen?

Typ: Anwendung im Terminal
Name: Test
Befehl: /Pfad/Datei
Kommentar:

Ich glaube aber es ist besser wenn wir den Thread nicht noch ewig verlängern. Ein paar Dinge hab ich damit dazugelernt und bis es so funktioniert wie ich am Anfang gehofft hatte würd es wohl noch etwas Aufwand sein (Pareto lässt grüßen). Und ich will euch auch nicht überstrapazieren 🙄 . Also danke für eure Beiträge!

Gruß Michael

Riddle

Avatar von Riddle

Anmeldungsdatum:
27. Juli 2007

Beiträge: 201

Wohnort: 127.0.0.1

Mach doch mal:

Typ: Anwendung im Terminal
Name: Test
Befehl: /bin/bash -c '/Pfad/Datei; exec /bin/bash -i'
Kommentar:

Aufgegeben wird so schnell nicht 😉

posti

Anmeldungsdatum:
30. März 2009

Beiträge: 2087

@Eagle

Es geht nicht unbedingt darum, daß DU Dein Problem gelöst bekommst, sondern darum, daß DAS PROBELM gelöst wird.

Außerdem sollte C++ in Linux durchaus funktionieren, da Linux in C++ geschrieben ist (laut Dem, was mir als Lesestoff unter kam), offen ist und es wohl nicht gewollt ist, diese Sprache abzuwürgen.

MfG

Riddle

Avatar von Riddle

Anmeldungsdatum:
27. Juli 2007

Beiträge: 201

Wohnort: 127.0.0.1

Naja, das Problem hat ja eigentlich nichts mehr mit C++ zu tun, sondern nur noch wie man ein Konsolenprogramm per Mausklick starten kann (ob das jetzt in C++, Python, Whitespace, ... geschrieben wurde ist da egal) 😉

Vain

Avatar von Vain

Anmeldungsdatum:
12. April 2008

Beiträge: 2510

posti schrieb:

da Linux in C++ geschrieben ist (laut Dem, was mir als Lesestoff unter kam)

http://www.oreilly.com/catalog/understandlk/

posti

Anmeldungsdatum:
30. März 2009

Beiträge: 2087

@Vain

Danke für den Link - scheint so, als ob mein angelesenes Wissen nicht ganz vollständig ist?? Weshalb solltest Du mir sonst ein (englischsprachiges??) Buch verlinken?

Nicht, daß ich direkt im Kaufrausch verfalle ... was soll mir der Link verraten (außer, daß meine Kontodaten zwei/drei Links später hilfreich wären).

MfG

track

Avatar von track

Anmeldungsdatum:
26. Juni 2008

Beiträge: 7174

Wohnort: Wolfen (S-A)

Ich glaube, Vain wollte hierauf hinweisen: http://de.wikipedia.org/wiki/Linux_(Kernel)#Programmiersprache

Linux ist fast komplett in der Programmiersprache C geschrieben, ...

(und nicht C++) ... 😉

LG,

track

Vain

Avatar von Vain

Anmeldungsdatum:
12. April 2008

Beiträge: 2510

C++ wirst du im Kernel nicht finden, nur C und Assembler. Alles andere wäre mir jedenfalls echt neu. ☺

Das Buch ist richtig interessant, wenn man ein bisschen tiefer einsteigen möchte. Aber, ja, ist englisch und keine leichte Kost. Ich lese auch schon deutlich länger drin rum, als ich ursprünglich dachte.

(Sorry, war abgelenkt. Hätte gleich eine richtige Antwort schreiben sollen, statt dir nur den Link hinzuwerfen, was zwei drei unnötige Offtopic-Postings hier verhindert hätte. Tja, so läuft’s.)

posti

Anmeldungsdatum:
30. März 2009

Beiträge: 2087

Und OT34

Leider kann ich mit der englischen Sprache nicht viel anfangen (würde wohl nicht verhungern - nen Bier bekomme ich da bestimmt, aber das war es dann wohl schon).

Auch hatte ich bisher mit C und Deren Unterarten (??) ala # und ++ nichts am Hut, einzig Basic (jaja, so issa halt) in verschiedenen Varianten kamen mir unter (neben Assembler zu 286er Zeiten).

Habe zwar ein englisches Buch zu Interrupts in X86er Maschinen, aber das war es auch (leider) schon - vll back²toppic?

Hefeweiz3n Team-Icon

Moderator, Webteam
Avatar von Hefeweiz3n

Anmeldungsdatum:
15. Juli 2006

Beiträge: 5815

Wohnort: Ankh-Morpork

C# hat außer dem Namen mit C nix gemein, es ist eher ein Verschnitt aus Java und C++. Das ist aber auch OT und kann in einem der vielen Programmiersprachenthreads besprochen werden.

Der TE hat wohl verstanden warum sein Starter nicht funktionierte und warum sein Code nicht ganz sauber war und erachtet sein Problem als gelöst. Wenn den nicht mehr so ist geht's hier dann auch bitte wieder mit dem Thema weiter 😀.

user_unknown

Avatar von user_unknown

Anmeldungsdatum:
10. August 2005

Beiträge: 17622

Wohnort: Berlin

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
  <sect1 id="conventions-cplusplus">
   <title>C++</title>
   
   <para>
    Using C++ in the kernel is usually a bad idea, because the
    kernel does not provide the necessary runtime environment
    and the include files are not tested for it.  It is still
    possible, but not recommended.  If you really want to do
    this, forget about exceptions at least.
   </para>
  </sect1>

aus: /usr/src/linux/Documentation/DocBook/kernel-hacking.tmpl

Reicht Dein Englisch dafür? Wenn nein, wird das mit dem Programmieren ohnehin ein Abenteuer. Oder das Englisch wird noch.