Ich habe also erst vor Kurzem Linux installiert, nachdem ich mein ganzes Leben lang Windows verwendet hatte. Außerdem habe ich gerade die C++-IDE code::blocks
mit dem folgenden Befehl im Terminal installiert:
sudo apt-get install codeblocks
Wenn ich jetzt versuche, einen Quellcode auszuführen, erhalte ich diesen Fehler
sh:1 /home/daniel/Desktop/Hey: Permission Denied
Irgendeine Hilfe/Lösung?
Antwort1
Das normale Verhalten von CodeBlocks bei der Arbeit an einer einzelnen Datei (im Gegensatz zu einem Projekt) besteht darin, den Namen der Datei ohne Erweiterung als Namen der kompilierten ausführbaren Datei zu verwenden. Dadurch hello.cpp
wird eine Binärdatei mit dem Namen erstellt hello
. CodeBlocks überprüft die Zeitstempel der Dateien, um festzustellen, ob eine Kompilierung erforderlich ist. Dies schlägt fehl, wenn die Datei keine Erweiterung hat: Eine Quelldatei mit dem Namen hello
hätte aus Sicht von CodeBlocks eine Binärdatei mit dem Namen hello
. Die Zeitstempelprüfung schlägt also fehl, da die Datei mit sich selbst verglichen wird. Daher kompiliert CodeBlocks den Code nicht, sondern versucht, ihn direkt auszuführen, was jedoch fehlschlägt, da die Quelldatei keine ausführbare Datei ist. (Dies ist bei ausführbarem Quellcode wie Shell-Skripten kein Problem.)
Speichern Sie daher beim Einsatz von CodeBlocks (und generell) C/C++-Quellcode immer mit der entsprechenden Erweiterung.