programm läuft nicht
-
Hi,
ich bin noch Newbie unter Linux. Dort habe ich ein kleines C Proggie geschrieben und mit dem Befehl gcc -o test -c test.c compiliert.
Wenn ich nun aber die Datei Test starte dann passiert gar nichts.Auch habe ich es mit gcc test.c versucht und die a.out tut auch nichts.
Wer kann mir helfen???
Danke schon mal im Voraus.
-
Ich glaube der Quelltext oder die Fehlermeldungen würden mehr Helfen......
-
Genau das gleiche Problem hatte ich auch mal. Bin fast verzweifelt, bis ich auf die Idee kam, daß test evtl. ein Standardprogramm sein könnte. Das Programm test befindet sich in /usr/bin, ist dieser Pfad in der Umgebungsvariable PATH (ist standardmäßig der Fall) wird natürlich /usr/bin/test aufgerufen und nicht dein Prog.
Abhilfe:
1. ./test anstatt test einzugeben, um sich auf den aktuellen Ordner zu beziehen
2. Programm umbennen
3. /usr/bin ausm Pfad schmeißen (würd ich nicht machen)
-
Das mit dem Namen test war doch nur fürs Forum, die a.out geht ja auch nicht.
Der Qellcode ist ganz klein:#include <stdui.h> main() { printf("\n mal rechnen\n"); printf("3 + 2 = %i\n", 3+2); }
-
Das mit dem Namen test war doch nur fürs Forum, die a.out geht ja auch nicht.
Der Qellcode ist ganz klein:#include <stdio.h> main() { printf("\n mal rechnen\n"); printf("3 + 2 = %i\n", 3+2); }
Wo steht denn der PATH und wann wird er gesetzt???
-
und mit dem Befehl gcc -o test -c test.c compiliert.
der Parameter -c gibt an das nur eine obj-Datei erzeugt wird und kein ausführbares Programm.
-
Die beiden Befehle waren:
gcc -o rechnen -c rechen.c
und
gcc rechen.c
-
PATH brauchst du nicht ändern. Und schon garnicht /usr/bin rausnehmen. Um Gottes Willen...
Um Programme im aktuellen Verzeichnis auszuführen musst du einfach ./name schreiben statt nur name.
Liegt daran das die bash ohne genaue Pfadangabe nur Programme findet die im PATH liegen und das das aktuelle Verzeichnis meistens nicht in PATH drinsteht. Was auch nicht so prall wäre.
-
Ok das habe ich verstanden. Aber warum passiert nichts bei meinem Programm. Wieso sieht man keine Ausgabe?
-
Naja, an einem Namenskonflikt mit einer Datei, die sich irgendwo in PATH befindet, scheints ja nicht zu liegen.
Wahrscheinlich editierst du eine Datei und kompilierst eine andere.
-
1. du musst am Anfang int einsetzen!!!!!!
2.ich würde anstatt %i %d verwenden aber das ist geschmacks sache
3.Am Ende des Programmes musst! du getchar(); und return 0; einsetzen:#include <stdio.h> int main() //das muss so Aussehen dann weis der Compiler was du machen willst! { printf("\n mal rechnen\n"); printf("3 + 2 = %d\n", 3+2); getchar(); //Damit du überhaupt was siehst! return 0; }
Teste jetzt mal!
-
Original erstellt von Doktor Prokt:
Naja, an einem Namenskonflikt mit einer Datei, die sich irgendwo in PATH befindet, scheints ja nicht zu liegen.Ja, an einem Namenskonflikt kanns garnicht liegen weil ohnehin beim aufruf von "blablub" nur im pfad gesucht wird.
Das wollte ich damit sagen.Hackepeter: Was du schreibst ist quatsch. Das hat nun überhaupt nichts damit zu tun.
Wobei ich jetzt ehrlich gesagt garnicht mehr weiß wo eigentlich das Problem ist.. Du startest das Programm aber es passiert nichts? Was machst du? Tippst das im Terminal ein und es kommt keine Ausgabe? oder klickst im konqueror auf das icon? Letzteres macht in der Tat nichts.. Da musste schon den konqueror sagen das er ein terminal dafür öffnen muss.
-
ich hab im terminal die a.out mit ./a.out aufgerufen und es hatte sich nichts getan.
Das habe ich ca. 15 mal gemacht ohne auch nur irgendwas zu verändern und jetzt gehts.
Jetzt bräuchte ich nur noch ein Makefile das mir ein ausführbares Programm erstellt. Könnte mir da jemand helfen. Oder ich gucke mal, ich glaube das stand hier schon im Forum.
-
Habe das Makefile erstellt und habe das Prog auf dem Desktop. Wenn ich draufklicke
geht wieder nichts.Wie weise ich diesem Dateityp den ein Terminal zu das es beim Start öffnet???