Zum Inhalt springen

nach GCC Kompilierung kein Start


Commander_COM

Empfohlene Beiträge

Hi,

ich habe mir gerade mandrake 10 powerpack auf die maschine gehauen (mein programmierrechener soll das werden) und mein erstes programm in c drauf geschrieben... hallo welt usw....

nach erfolgreicher kompilierung ohne fehler mit

gcc -ansi -Wall -O prog1.c -o prog1

hat der das teil kompiliert. wenn ich nun aber "prog1" ohne die "" eingebe, antowortet linux

bash: command not found oder so ähnlich!?

was hab ich falsch gemacht? bzw, was habe ich übersehen?

Link zu diesem Kommentar
Auf anderen Seiten teilen

bash: command not found oder so ähnlich!?

Hoy, liegt wahrscheinlich daran dass Dein aktuelles Arbeitsverzeichnis nicht im Pfad steht;

probiers mal mit einer relativen Pfadangabe wie ./prog1 oder mit einer absoluten Pfadangabe wie /dein/ganz/langer/pfad/prog1.

Die Datei sollte natürlich auch noch ausführbar sein.

weiß jetzt aber nicht wie ich selber eine Frage bzw Thread oder so erstellen kann.

Du bewegst Dich in passende Forum wie z.B. "Linux + Unix" und klickst auf den Button "neues Thema"; diesen Button hat es einmal oben links und einmal unten links auf der Threadübersichtssetite.

Bye

SystemError

Link zu diesem Kommentar
Auf anderen Seiten teilen

das System findet die kompilierte Datei nicht, weil dein Pfad nicht

das aktuelle Verzeichnis enthält (Standard bei Linux)

also entweder du rufst dein Programm mit Pfadangabe auf:

# ./programm

oder du fügst das aktuelle Verzeichniss in deinen Pfad mit auf

# export PATH=$PATH:.

# programm

Link zu diesem Kommentar
Auf anderen Seiten teilen

das System findet die kompilierte Datei nicht, weil dein Pfad nicht

das aktuelle Verzeichnis enthält (Standard bei Linux)

also entweder du rufst dein Programm mit Pfadangabe auf:

# ./programm

oder du fügst das aktuelle Verzeichniss in deinen Pfad mit auf

# export PATH=$PATH:.

# programm

super, danke. das geht erstmal. bleibt das dann mit der export-variable bestehen, oder muss ich das jedesmal neu anlegen?

gibts nicht vielleicht ne möglichkeit, dass er SOFORT im aktuellen verzeichnis nachschaut, ob dort die datei ausführbar ist?

kann doch irgendwie nicht sein, dass ich im selben verzeichnis wie die auszuführende datei bin und er führt sie nicht aus, weil er das verzeichnis nicht findet.... kommt mir sehr spanisch vor

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

du kannst natürlich auch die Pfade fest eintragen. In der Datei .bash_profile in deinem Homeverzeichnis einfach folgende Zeile einfügen:

export PATH=$PATH:/meinNeuesVerzeichnis:/meineZweitesVerzeichnis

Danach wird für den User "meinNeuesVerzeichnis" automatisch durchsucht. Weitere Verzeichnisse einfach durch einen : getrennt hinzufügen.

Du kannst das auch für alle User machen, in dem du die gleiche Zeile in die Datei /etc/profile einfügst, allerdings ist das nicht empfehlenswert. Das kann zu Sicherheitsproblemen führen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

das Programme die im aktuellen Verzeichnis liegen nicht automatisch zum Suchpfad gehören ist Teil der grundlegenden Sicherheitsfunktionen von Unix bzw. Linux.

Wenn dem nicht so wäre könnte z.B. jemand einen Virus schreiben und diesen "cd" nennen. Wenn du dann in diesem Ordner den Befehl "cd" ausführen würdest, würdest du ohne es zu merken den Virus starten anstatt wie gewollt das Verzeichnis zu wechseln.

Aus diesem Grund muss zum ausführen von Programmen wie schon geschrieben entweder der Ordner in den Suchpfad (Variable "PATH") aufgenommen werden, oder aber "./" als zeichen das explizit die Datei in diesem Ordner ausgeführt werden soll dazu geschrieben werden.

Die PATH Variable kannst du natürlich auch dauerhaft verändern, meistens in der ~/.bash_profile Datei.

Gruß

DownAnUp

<edit> Da war ich mal wieder zu langsam... *g*</edit>

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo,

das Programme die im aktuellen Verzeichnis liegen nicht automatisch zum Suchpfad gehören ist Teil der grundlegenden Sicherheitsfunktionen von Unix bzw. Linux...

Der Mann hat recht.

Das aktuelle Verzeichnis im Pfad werte ich (nur meine persönliche Meinung) als "schlampigen" Stil auf der Shell.

Unseren Azubis habe ich immer versucht so was abzugewöhnen; frei nach dem Motto: "Wehret den Anfängen !".

Und dem jeweiligen Kommando ein ./ vorne anzustellen ist nun wirklich kein grosser Aufwand.

Lieber einmal angewöhnt als ein böses Erwachen.

Bye

SystemError

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...