ld.exe: impossible d'ouvrir le fichier de sortie...: Permission refusée

j'ai récemment installé CodeBlocks avec mingw32 sur Windows 7 Ultimate 32bit afin de dépoussiérer mes compétences en c, mais ce problème m'a quelque peu déconcerté.

j'ai décidé de mettre le feu à un petit générateur de Fibonacci pour m'assurer que mon installation fonctionnait, mais je me suis heurté à un obstacle.

le programme compile, les liens et tout ça comme un charme et j'obtiens un exécutable correspondant qui tourne comme prévu.

Les problèmes se produisent si j'essaie de compiler à nouveau, alors j'obtiens le suivantes:

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

Je ne peux même pas éditer les permissions de l'exécutable généré.

j'ai vérifié les suspects habituels:

  • Exécutable est en vérité pas en cours d'exécution.
  • Chemin d'accès à l'exécutable est en lecture/écriture pour mingw32 (sinon il ne serait pas en mesure de construire dans la première place)
  • Je ne dirige pas cygwin sous quelque forme que ce soit.

et maintenant pour le plus drôle: habituellement après quelques minutes, tous les exécutables généré par mingw32 qui affichent ce comportement de refus d'accès disparaîtra automatiquement sans aucune intervention de ma part.

j'ai quelque peu cherché sur Google, mais la plupart des autres résultats étaient vagues ou inapplicables.

je me demande si il existe une certaine sécurité de Windows 7 réglage de jouer des ravages avec mon .exe, mais je ne sais pas trop où commencer les recherches.

quelqu'un a des idées?

43
demandé sur gzzzur 2011-10-05 04:20:35

11 réponses

j'ai eu exactement le même problème juste après avoir éteint certains (à mon avis unneccessary) Services Windows. Il s'est avéré que lorsque j'ai rallumé le "Application Experience" tout a repris son bon fonctionnement.

  1. cliquez sur le bouton Démarrer de Windows.

  2. dans la case "Rechercher des programmes et des fichiers" tapez services.msc et cliquez sur le bouton de recherche. Une nouvelle fenêtre avec le titre "Services" s'ouvre.

  3. cliquez avec le bouton droit de la souris sur la ligne "Application Experience" et sélectionnez "Properties" dans le menu contextuel.

  4. changer le type de démarrage en " Automatic (delayed start)".

  5. redémarrez l'ordinateur.

les expériences D'Application devraient prévenir le problème à l'avenir.

32
répondu Ralf 2018-09-01 19:18:39

si vous pensez que l'exécutable est verrouillé par un processus, essayez L'Explorateur de processus de SysInternals. Dans le fichier/handle, entrez Fibonacci.exe et vous devriez voir qui contient le fichier.

si ce n'est pas suffisant, vous pouvez utiliser Process Monitor (de SysInternals, encore une fois) pour suivre l'activité de tous les processus sur votre système sur Fibonacci.EXE. Avec un peu d'analyse (les piles d'appels), vous aurez peut découvrir pourquoi l'accès au fichier est refusé et que le faire disparaître.

20
répondu Thierry Franzetti 2011-10-10 20:09:46

votre programme fonctionne toujours. Vous devez le tuer en fermant la fenêtre de ligne de commande. Si vous appuyez sur control Alt delete, task manager, process (tuez ceux qui correspondent à votre nom de fichier).

11
répondu plodoc 2011-12-08 02:13:53

la meilleure solution est d'aller sur la console dans eclipse IDE et de cliquer sur le bouton rouge mettre fin au programme. Vous verrez que votre programme est en cours d'exécution et la sortie peut être vue là. :)!!

6
répondu Black_Rider 2013-01-14 16:10:51
  1. Ouvrir le gestionnaire des tâches -> Processus -> Cliquez sur .exe (Fibonacci.exe) - > fin du processus

    si ça ne fonctionne pas

  2. fermez L'IDE eclipse (ou n'importe quel IDE que vous utilisez) et répétez l'étape 1.

3
répondu Khokhar 2014-04-25 10:17:57

j'ai eu le même comportement, et je l'ai corrigé en lançant Code::Blocks comme administrateur.

2
répondu Luis 2012-02-27 17:38:49

j'ai eu un problème similaire. En utilisant un utilitaire freeware appelé Unlocker (version 1.9.2), j'ai découvert que mon logiciel antivirus (Panda free) avait laissé un verrou sur le fichier exécutable même s'il ne détectait aucune menace. Unlocker a pu le déverrouiller.

2
répondu R. Strickland 2014-09-12 15:31:09

Eu le même problème. Lire . Désactivé le logiciel antivirus (mcaffee). Et voila

Confirmé par l'antivirus log:

Blocked by Access Protection rule d:\mingw64\x86_64-w64-mingw32\bin\ld.exe d:\workspace\cpp\bar\foo.exe User-defined Rules:ctx3 Action blocked : Create

1
répondu Hey StackExchange 2015-10-15 20:13:58

il se peut que ce soit votre logiciel Antivirus.

dans mon cas Malwarebytes tenait une poignée sur l'exécutable de mon programme:

enter image description here

utiliser L'Explorateur de processus pour fermer la poignée, ou juste désactiver l'antivirus pour un peu de travail très bien.

1
répondu Herobrine2Nether 2017-07-07 20:57:05

j'ai eu cette erreur en utilisant L'éditeur Atom et mingw (à travers un paquet appelé gpp-compiler) pour C++. Fermer la fenêtre de la console ouverte a corrigé mon problème.

0
répondu Pro Q 2018-05-30 12:41:03

Cause Du Problème: Le processus du programme actuel est toujours en cours sans interuption. (C'est la raison pourquoi vous n'avez pas eu ce problème après un redémarrage)

La solution est simple : Accédez à cmd et tapez la commande taskkill -im processus-nom.exe-f

par exemple:

 taskkill -im demo.exe -f

ici

démo est mon nom de programme

0
répondu Arun Joshla 2018-06-23 10:30:18