|
|
Programm startet nicht |
_mc_
Aufsteiger
Dabei seit: 07.05.2005
Beiträge: 62
Herkunft: Austria
|
|
Programm startet nicht |
|
Also wenn ich unter Debian mit gcc mein projekt kompiliere und das dann ausführen will passiert nichts. Das kompilieren funktionier aber mein Programm startet nicht.
Der Quellcode ist übrigens einfach nur zu testzwecken so:
#include <iostream>
using namespace std;
int main()
{
system("PAUSE");
return (0);
}
__________________ never argue with an idiot, they bring u down 2 their level and beat u with x-perience
Ich habe ja auch nie bezweifelt, daß emacs ein tolles Betriebssystem ist. Aber um mit Linux oder Windows konkurrieren zu können, fehlt ihm ein vernünftiger Editor.
|
|
14.11.2004 10:17 |
|
|
phlox81
Bote des Lichts und Moderator
Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo
|
|
Hm, kennt Linux überhaupt ein PAUSE ?
Versuch mal:
Zitat: |
#include <iostream>
using namespace std;
int main()
{
cout << "hello world" << endl;
cin.get();
return 0;
} |
__________________ Intelligenz ist eine Illusion des Menschen
phlox81.de | codenode.de
|
|
14.11.2004 12:21 |
|
|
LX
El Comandante en Jefe
Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx
|
|
Wenn du's mit dem g++ kompilierst und dann ausführst, sollte folgende Fehlermeldung kommen:
code: |
1:
|
sh: line 1: PAUSE: command not found |
|
Das liegt vermutlich daran, dass auf deinem Debian-System kein Befehl namens PAUSE existiert, was mich auf einem *nix-System auch verwundert hätte. Entweder du suchst dir also ein Shellkommando oder einen Systemcall, der dasselbe wie PAUSE unter Windows macht, oder du programmierst dir selbst eine kleine Funktion, die auf einen Tastendruck wartet.
Das Problem bei letzterem ist, dass die Linux-Shell normalerweise line buffered ist, das heißt dass eine Eingabe erst dann ausgewertet wird, wenn eine neue Zeile angefangen wird. Demnach wird das obligatorische "Press any key" nicht so ohne weiteres funktionieren, du könntest es aber ausgeben lassen, dass ENTER gedrückt werden soll. Beispiel:
code: |
1:
2:
3:
4:
5:
6:
7:
8:
|
#include <iostream>
using namespace std;
int main()
{
system("echo -n 'Press ENTER to continue: ' ; read");
return (0);
} |
|
Sauberer wäre natürlich eine Funktion in C++ selbst, da du dich mit dieser Lösung genauso von einem System abhängig machst wie mit system("pause"); vorher bei Windows.
[EDIT]
/note to self: schneller tippen
__________________ JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von LX: 14.11.2004 12:36.
|
|
14.11.2004 12:34 |
|
|
_mc_
Aufsteiger
Dabei seit: 07.05.2005
Beiträge: 62
Herkunft: Austria
Themenstarter
|
|
danke für die antworten, aber leider funzt es noch immer nicht.
Ps:g++ hat nicht gesagt das er pause nicht kennt, der sagt aber auch garnix ^^.
__________________ never argue with an idiot, they bring u down 2 their level and beat u with x-perience
Ich habe ja auch nie bezweifelt, daß emacs ein tolles Betriebssystem ist. Aber um mit Linux oder Windows konkurrieren zu können, fehlt ihm ein vernünftiger Editor.
|
|
14.11.2004 14:34 |
|
|
LX
El Comandante en Jefe
Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx
|
|
g++ wird sich diesbezüglich auch net melden. Der weiß schließlich auch nicht, welche Kommandos das System alle kennt. Allerdings wirst du diesen Fehler bekommen, wenn du letztendlich versuchst, das Programm zu starten.
Wenn's immer noch nicht geht, wie kompilierst du denn und wie rufst du's letztendlich auf?
__________________ JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett
|
|
14.11.2004 14:44 |
|
|
_mc_
Aufsteiger
Dabei seit: 07.05.2005
Beiträge: 62
Herkunft: Austria
Themenstarter
|
|
g++ main.cpp -o main
Aufrufen tu ich es durch klicken und durch tippen von main und beides funzt nicht
__________________ never argue with an idiot, they bring u down 2 their level and beat u with x-perience
Ich habe ja auch nie bezweifelt, daß emacs ein tolles Betriebssystem ist. Aber um mit Linux oder Windows konkurrieren zu können, fehlt ihm ein vernünftiger Editor.
|
|
14.11.2004 15:29 |
|
|
time-walker
Junior Member
Dabei seit: 01.02.2003
Beiträge: 167
Herkunft: Osnabrooklin
|
|
mach das mal so:
gcc -o main main.cpp
__________________ Wissen ist macht
Dc_donald--->Time-walker
|
|
15.11.2004 12:39 |
|
|
_mc_
Aufsteiger
Dabei seit: 07.05.2005
Beiträge: 62
Herkunft: Austria
Themenstarter
|
|
wenn ich es so mache erscheint die fehlermeldung "Keine Eingabedatei"
__________________ never argue with an idiot, they bring u down 2 their level and beat u with x-perience
Ich habe ja auch nie bezweifelt, daß emacs ein tolles Betriebssystem ist. Aber um mit Linux oder Windows konkurrieren zu können, fehlt ihm ein vernünftiger Editor.
|
|
15.11.2004 14:17 |
|
|
Misel
Hüter des Kitkat
Dabei seit: 02.11.2002
Beiträge: 1.203
Herkunft: live://home.berlin.d
e
|
|
erstmal was grundsätzliches: Wenn Du in C++ codest - was Du dem Quelltext nach machst - dann musst Du selbstverständlich den 'g++' als Compiler nehmen.
Dann solltest Du Dir mal die man-page von "system" anschauen. Dort steht drin: "system - execute a shell command".
D.h. Dein g++ macht alles richtig. Er kompiliert und linkt das Programm korrekt, aber sobald Du es ausführst, ruft er eine Shell kommando auf. Das ist in diesem Fall "PAUSE" und weil Dein Debiansystem das nicht kennt, kommt es zu dieser Fehlermeldung.
Vielleicht hat Dir ja diese Zusammenfassung der bisherigen Antworten nun weitergeholfen.
__________________ LAUFT! Ich spiele KILLERSPIELE!
|
|
16.11.2004 12:57 |
|
|
_mc_
Aufsteiger
Dabei seit: 07.05.2005
Beiträge: 62
Herkunft: Austria
Themenstarter
|
|
Ich kompiliere es mit g++ wie du dem text weiter oben entnehmen kannst und das system("Pause"); habe ich mitlerweile durch cin.get(); ersetzt.
__________________ never argue with an idiot, they bring u down 2 their level and beat u with x-perience
Ich habe ja auch nie bezweifelt, daß emacs ein tolles Betriebssystem ist. Aber um mit Linux oder Windows konkurrieren zu können, fehlt ihm ein vernünftiger Editor.
|
|
16.11.2004 14:23 |
|
|
Misel
Hüter des Kitkat
Dabei seit: 02.11.2002
Beiträge: 1.203
Herkunft: live://home.berlin.d
e
|
|
|
|
Nur zur Info, das Problem wurde gefunden und behoben
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
|
<Misel> okay, KellerBewohner, dann gehen wir einfach mal schrittweise durch, was genau machst Du
<KellerBewohner> also ich schreibe das programm mit kwrite und speicher es als main.cpp
<Misel> und dann?
<KellerBewohner> danach wechsle ich in das entsprechende verzeichnis und tippe g++ main.cpp -o test ein
<Misel> jo
<Misel> und dann ./test
<KellerBewohner> japp
<Misel> hast du auch das "./" mitgetippt?
<Misel> KellerBewohner: test ist ein Befehl, den es schon gibt und je nach deiner Pfadvariablen nimmt er dieses test, statt dem, das im aktuellen verzeichnis liegt
<KellerBewohner> ne das ./ habe ich nicht mitgetippt
<Misel> dann liegt es daran
<Misel> wenn du nur test eingibst, startet er ein anderes test
<Misel> und das macht ohne Parameter einfach gar nicht
<Misel> s
<Misel> bin ich auch schon öfter drüber gestolpert :)
<KellerBewohner> danke vielmals für die hilfe
<Misel> klappt's?
<KellerBewohner> japp
<Misel> :)
|
|
Also an alle: Wenn Ihr unter Linuxcodet, nennt das Testprogramm nicht "test"
__________________ LAUFT! Ich spiele KILLERSPIELE!
|
|
16.11.2004 18:34 |
|
|
_mc_
Aufsteiger
Dabei seit: 07.05.2005
Beiträge: 62
Herkunft: Austria
Themenstarter
|
|
möchte mich noch mal bei alle bedanken die sich um dieses problem bemüht haben, vor allem Misel
mfg
__________________ never argue with an idiot, they bring u down 2 their level and beat u with x-perience
Ich habe ja auch nie bezweifelt, daß emacs ein tolles Betriebssystem ist. Aber um mit Linux oder Windows konkurrieren zu können, fehlt ihm ein vernünftiger Editor.
|
|
16.11.2004 19:28 |
|
|
JonnyMaddrox
Prost !
Dabei seit: 28.01.2005
Beiträge: 48
Herkunft: Weinheim(BW)
|
|
Hallöchen,
Ich wollte jetzt nicht extra einen Thread für dieses(simple) Problem aufmachen.
Ich fange grade an mit einem eurer geposteten Tutorials über c++, zu lernen.
Hab mir vorgenommen am Tag min 2-3 Kapitel zu lesen und dann zu üben.
Aber leider macht mir Dev-C++ probleme, denn manchmal wenn ich einen code geschrieben hab lässt er sich zwar compilieren aber nicht ausführen. Also endweder es kommt einfach gar nix oder es ist zu schnell für meine Augen
.
Der Quelltext ist immer richtig, der ist noch ganz simple.
__________________ Alkohol ist ein hervorragendes Lösungsmittel. Er löst Familien, Ehen, Freundschaften, Arbeitsverhältnisse, Bankkonten und Gehirnzellen auf.
|
|
28.01.2005 16:37 |
|
|
phlox81
Bote des Lichts und Moderator
Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo
|
|
Liegts jetzt am Code von dir, oder am Compiler ?
Devil
__________________ Intelligenz ist eine Illusion des Menschen
phlox81.de | codenode.de
|
|
28.01.2005 16:40 |
|
|
LX
El Comandante en Jefe
Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx
|
|
Wenn du unter Windows programmierst, dann versuch's mal mit system("PAUSE"); oder starte dein kompiliertes Programm direkt über die MS-DOS-Eingabeaufforderung. Ansonsten ist das Programm schneller abgearbeitet und wieder geschlossen als du gucken kannst
__________________ JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett
|
|
28.01.2005 16:42 |
|
|
phlox81
Bote des Lichts und Moderator
Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo
|
|
Zitat: |
Original von LX
Wenn du unter Windows programmierst, dann versuch's mal mit system("PAUSE"); oder starte dein kompiliertes Programm direkt über die MS-DOS-Eingabeaufforderung. Ansonsten ist das Programm schneller abgearbeitet und wieder geschlossen als du gucken kannst
|
system ist da überflüssig.
Siehe ersten Post von mir...
Devil
__________________ Intelligenz ist eine Illusion des Menschen
phlox81.de | codenode.de
|
|
28.01.2005 16:48 |
|
|
phlox81
Bote des Lichts und Moderator
Dabei seit: 19.10.2002
Beiträge: 3.028
Herkunft: Irgendwo im Nirgendwo
|
|
Für die restlichen Ein- und Ausgaben deines Programms bist du selbstverantwortlich...
__________________ Intelligenz ist eine Illusion des Menschen
phlox81.de | codenode.de
|
|
28.01.2005 16:55 |
|
|
JonnyMaddrox
Prost !
Dabei seit: 28.01.2005
Beiträge: 48
Herkunft: Weinheim(BW)
|
|
Naja ich denk mal das liegt an dem dev-C++
__________________ Alkohol ist ein hervorragendes Lösungsmittel. Er löst Familien, Ehen, Freundschaften, Arbeitsverhältnisse, Bankkonten und Gehirnzellen auf.
|
|
28.01.2005 17:06 |
|
|
LX
El Comandante en Jefe
Dabei seit: 25.11.2001
Beiträge: 5.372
Herkunft: Berliner Bronx
|
|
Oder daran, dass dein Programm vielleicht gar keine Ausgabe erzeugt... vielleicht solltest du mal zeigen, wie der Code aussieht.
__________________ JS-Games.de - Misled Scripting Skills Gone Mad | Meine Filmkritiken | Urban Photography
Kommt mal in den IRC-Channel: irc.eu.freenode.net | Port 6667 | #blackboard
"Ever tried. Ever failed. No matter.
Try again. Fail again. Fail better."
- Samuel Beckett
|
|
28.01.2005 17:27 |
|
|
|
|
|
|