Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

nach GCC Kompilierung kein Start

Empfohlene Antworten

Veröffentlicht

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?

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

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

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

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.

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>

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

alles klar, danke für die vielen und eindeutigen Antworten

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.