ld.exe: Ausgabedatei kann nicht geöffnet werden … : Zugriff verweigert

Lesezeit: 5 Minuten

Ich habe kürzlich CodeBlocks mit mingw32 auf Windows 7 Ultimate 32bit installiert, um meine C-Kenntnisse abzustauben, aber dieses Problem hat mich etwas ratlos gemacht.

Ich beschloss, einen kurzen Fibonacci-Generator abzufeuern, um sicherzustellen, dass mein Setup funktionierte, aber ich stieß auf eine Hürde.

Das Programm kompiliert, verlinkt und so weiter wie ein Zauber und ich bekomme eine entsprechende ausführbare Datei, die wie erwartet ausgeführt wird.

Die Probleme treten auf, wenn ich versuche erneut zu kompilieren, dann bekomme ich folgendes:

c:/codeblocks/mingw/bin/../lib/gcc/mingw32/4.4.1/../../../../mingw32/bin/ld.exe: cannot open output file bin\Debug\Fibonacci.exe: Permission denied

Ich kann nicht einmal die Berechtigungen der generierten ausführbaren Datei bearbeiten.

Ich habe die üblichen Verdächtigen überprüft:

  • Ausführbare Datei wird wahrlich nicht ausgeführt.
  • Der Pfad zur ausführbaren Datei ist für mingw32 les-/schreibbar (andernfalls wäre es nicht möglich, überhaupt zu erstellen)
  • Ich führe Cygwin in keiner Form aus.

Und nun zum Lustigen: Normalerweise verschwinden alle von mingw32 generierten ausführbaren Dateien, die dieses Verhalten „Zugriff verweigert“ zeigen, nach ein paar Minuten automatisch, ohne dass ich eingreifen muss.

Ich habe das etwas gegoogelt, aber die meisten anderen Ergebnisse waren entweder vage oder nicht anwendbar.

Ich frage mich, ob es eine Windows 7-Sicherheitseinstellung gibt, die mit meinen EXE-Dateien Chaos anrichtet, aber ich kenne mich mit Win 7 nicht so gut aus, dass ich weiß, wo ich mit der Suche beginnen soll.

Hat jemand irgendwelche Ideen?

  • Hier ist eine Vermutung … wenn Sie in das Verzeichnis bin\Debug bauen, dann macht code::blocks möglicherweise etwas mit seinem integrierten Debugger und hält ein Datei-Handle auf der ausführbaren Datei offen. Versuchen Sie, es für die Veröffentlichung zu erstellen, und prüfen Sie, ob Sie dasselbe Problem haben

    – Lappen

    5. Oktober 2011 um 0:34 Uhr

  • Ich denke, @BrianGordons Vermutung ist gut. Wenn das Programm ausgeführt wird, beenden Sie es, bevor Sie versuchen, es neu zu erstellen.

    – Keith Thompson

    5. Oktober 2011 um 0:38 Uhr

  • Die ausführbaren Dateien verschwinden? Wie werden sie automatisch gelöscht? Klingt nach einem Problem mit dem Virenscanner.

    – Blechmann

    7. Oktober 2011 um 12:40 Uhr

  • Victor T. : Mir wird nur die Berechtigung verweigert. tinman: Kein Virenschutz installiert, ich führe nur gelegentlich mcafee stinger aus. Ich schaue mir heute Abend mal UAC an.

    – gzzzur

    7. Oktober 2011 um 21:16 Uhr


  • Ihre Code::Blocks-Projekte sollten nicht in Verzeichnissen wie C , C://users//yourname oder C://ProgramFiles oder C://ProgramFiles/Code::Blocks erstellt werden.

    – 2147483647

    5. November 2012 um 2:36 Uhr

Benutzeravatar von Ralf
Ralf

Ich hatte genau das gleiche Problem direkt nach dem Abschalten einiger (meiner Meinung nach unnötiger) Windows-Dienste. Es stellte sich heraus, dass beim erneuten Einschalten der "Application Experience" alles funktionierte wieder einwandfrei.

Vielleicht müssen Sie diesen Dienst einfach aktivieren? So schalten Sie Application Experience ein:

  1. Klicken Sie auf die Windows-Startschaltfläche.

  2. Geben Sie in das Feld mit der Bezeichnung “Programme und Dateien durchsuchen” ein services.msc und klicken Sie auf die Schaltfläche Suchen. Es öffnet sich ein neues Fenster mit dem Titel “Services”.

  3. Klicken Sie mit der rechten Maustaste auf die Zeile „Anwendungserfahrung“ und wählen Sie „Eigenschaften“ aus dem Popup-Menü.

  4. Ändern Sie den Starttyp auf „Automatisch (verzögerter Start)“.

  5. Starte den Computer neu.

Anwendungserfahrungen sollten das Problem in Zukunft verhindern.

  • Dies scheint die eigentlich gute Lösung für dieses wirklich unangenehme Problem zu sein. Ich habe es in einigen Forenthreads und dergleichen als ungelöst gesehen.

    – Cimbali

    15. November 2012 um 16:36 Uhr

  • Hat auch bei mir funktioniert, ich verstehe immer noch nicht, was los ist.

    – 5Agado

    3. April 2014 um 14:16 Uhr

  • Tolle Antwort kam nach Neustart auf +1 zurück

    – Philipp Rego

    25. September 2014 um 5:11 Uhr

  • Hat bei mir auch funktioniert, kann es mir nicht erklären.

    – Robin Brügger

    16. März 2015 um 16:45 Uhr

  • Ich versuche, ein Softwarepaket mit MSYS2/ming32 zu erstellen und stoße auf das gleiche Problem. Ich erhalte den ld-Fehler, wenn das configure-Skript versucht, ein Testprogramm zu kompilieren. Der Zauber „Application Experience“ hat nicht funktioniert.

    – Seppo Enarvi

    14. April 2015 um 17:31 Uhr

Benutzeravatar von plodoc
plodoc

Ihr Programm läuft noch. Sie müssen es beenden, indem Sie das Befehlszeilenfenster schließen. Wenn Sie Strg-Alt-Löschen, Task-Manager, Prozesse drücken (beenden Sie diejenigen, die mit Ihrem Dateinamen übereinstimmen).

Wenn Sie glauben, dass die ausführbare Datei von einem Prozess gesperrt ist, versuchen Sie es mit Process Explorer von SysInternals. Geben Sie in Datei/Handle Fibonacci.exe ein und Sie sollten sehen, wer die Datei besitzt.

Wenn dies nicht ausreicht, können Sie Process Monitor (wieder von SysInternals) verwenden, um die Aktivität aller Prozesse auf Ihrem System auf Fibonacci.exe zu verfolgen. Mit ein wenig Analyse (Aufruflisten) finden Sie vielleicht heraus, warum der Zugriff auf die Datei verweigert wird und was sie verschwinden lässt.

  • Ich habe Ihre Antwort ausgewählt, weil sie angesichts meiner Problemstellung die plausibelste Lösung zu sein scheint. Ausprobieren konnte ich es allerdings nicht, da der Rechner auf dem ich es laufen hatte abgestürzt ist. Da ich mich jetzt für Linux entschieden habe, macht es das für mich zu einem strittigen Punkt.

    – gzzzur

    25. Oktober 2011 um 13:50 Uhr


Benutzeravatar von Arun Joseph
Arrun Josef

Problemursache:
Der Prozess des aktuellen Programms läuft weiterhin ohne Unterbrechung. (Dies ist der Grund, warum Sie dieses Problem nach einem Neustart nicht haben)

Die Lösung ist einfach:
Gehe zu cmd und geben Sie den Befehl ein taskkill -im Prozessname.exe -f

Z.B:

 taskkill -im demo.exe -f

hier,

Demo – ist mein Programmname

Die beste Lösung ist, in der Eclipse-IDE zur Konsole zu gehen und auf die zu klicken roter Knopf um das Programm zu beenden. Sie werden sehen, dass Ihr Programm läuft und die Ausgabe dort zu sehen ist. 🙂 !!

  • Dies ist die beste Lösung , jeder , der Eclipse verwendet , sollte dies verwenden .

    – Shadrack Mwangi

    14. Dezember 2017 um 5:16 Uhr

Benutzeravatar von Matt Fenwick
Matt Fenwick

Ich hatte das gleiche Verhalten und habe es behoben, indem ich Code::Blocks als Administrator ausgeführt habe.

  • Dies ist die beste Lösung , jeder , der Eclipse verwendet , sollte dies verwenden .

    – Shadrack Mwangi

    14. Dezember 2017 um 5:16 Uhr

Khokhars Benutzeravatar
Khokhar

  1. Öffnen Sie den Task-Manager -> Prozesse -> Klicken Sie auf .exe (Fibonacci.exe) -> Prozess beenden

    wenn es nicht funktioniert

  2. Schließen Sie die Eclipse-IDE (oder die von Ihnen verwendete IDE) und wiederholen Sie Schritt 1.

1413610cookie-checkld.exe: Ausgabedatei kann nicht geöffnet werden … : Zugriff verweigert

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy