ld.exe: no se puede abrir el archivo de salida Permission: Permiso denegado


Recientemente instalé CodeBlocks con mingw32 en Windows 7 Ultimate 32bit con el fin de desempolvar mis habilidades c, pero este problema me tiene un poco perplejo.

Decidí disparar un generador corto de Fibonacci para asegurarme de que mi configuración estaba funcionando, pero me encontré con un obstáculo.

El programa compila, enlaza y lo que sea como un encanto y obtengo un ejecutable correspondiente que se ejecuta como se esperaba.

Los problemas ocurren si intento compilar de nuevo, entonces obtengo el siguiente:

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

Ni siquiera puedo editar los permisos del ejecutable generado.

He comprobado los sospechosos habituales:

  • El ejecutable no se está ejecutando.
  • La ruta al ejecutable es de lectura / escritura a mingw32 (de lo contrario no sería capaz de construir en el primer lugar)
  • No estoy ejecutando cygwin en ninguna forma o forma.

Y ahora para lo divertido: Generalmente después de unos minutos, los ejecutables generados por mingw32 que se muestran este comportamiento de Acceso denegado desaparecerá automáticamente sin ninguna intervención por mi parte.

He googleado esto un poco, pero la mayoría de los otros resultados eran vagos o inaplicables.

Me pregunto si hay alguna configuración de seguridad de Windows 7 jugando estragos con mi .exe, pero no estoy tan bien informado sobre Win 7 como para saber por dónde empezar a buscar.

¿Alguien tiene alguna idea?

Author: gzzzur, 2011-10-05

11 answers

Tuve exactamente el mismo problema justo después de apagar algunos (en mi opinión innecesario) servicios de Windows. Resultó que cuando encendí de nuevo el "Application Experience" todo volvió a funcionar bien.

Puede ser que simplemente tenga que activar este servicio? Para activar la Experiencia de Aplicación:

  1. Haga clic en el botón de inicio de Windows.

  2. En la casilla "Buscar programas y archivos" escriba services.msc y haga clic en el botón buscar. Una nueva ventana con el título " Servicios" abrir.

  3. Haga clic derecho en la línea " Experiencia de aplicación "y seleccione" Propiedades " en el menú emergente.

  4. Cambie el tipo de inicio a " Automático (inicio retrasado)".

  5. Reinicie la computadora.

Las experiencias de aplicación deberían prevenir el problema en el futuro.

 32
Author: Ralf,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-01 19:18:39

Si cree que el ejecutable está bloqueado por un proceso, pruebe Process Explorer desde SysInternals. En el Archivo/manejador, ingrese Fibonacci.exe y deberías ver quién tiene el archivo.

Si no es suficiente, puede usar Process Monitor (de SysInternals, de nuevo) para seguir la actividad de todos los procesos en su sistema en Fibonacci.exe. Con un poco de análisis (pilas de llamadas), puede averiguar por qué se niega el acceso al archivo y qué lo hace desaparecer.

 20
Author: Thierry Franzetti,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-10 20:09:46

Su programa todavía se está ejecutando. Tienes que matarlo cerrando la ventana de la línea de comandos. Si pulsa control alt delete, administrador de tareas, process's (matar a los que coinciden con su nombre de archivo).

 11
Author: plodoc,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-12-08 02:13:53

La mejor solución es ir a la consola en eclipse IDE y hacer clic en el botón rojo para terminar el programa. Verá que su programa se está ejecutando y la salida se puede ver allí. :) !!

 6
Author: Black_Rider,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-01-14 16:10:51
  1. Abra el administrador de tareas -> Procesos -> Haga clic en .exe (Fibonacci.exe) -> Fin del proceso

    Si no funciona

  2. Cierre eclipse IDE (o el IDE que use) y repita el paso 1.

 3
Author: Khokhar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-25 10:17:57

Tenía el mismo comportamiento, y lo arreglé ejecutando Code::Blocks como administrador.

 2
Author: Luis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-02-27 17:38:49

Tuve un problema similar. Usando una utilidad gratuita llamada Unlocker (versión 1.9.2), descubrí que mi software antivirus (Panda free) había dejado un bloqueo colgado en el archivo ejecutable a pesar de que no detectaba ninguna amenaza. Unlocker fue capaz de desbloquearlo.

 2
Author: R. Strickland,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-09-12 15:31:09

Tiene el mismo problema. Lee esto . Desactivado el software antivirus (mcaffee). Et voila

Confirmado por el registro del antivirus:

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
Author: Hey StackExchange,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-15 20:13:58

Puede ser su Software Antivirus.

En mi caso Malwarebytes estaba sosteniendo un controlador en el ejecutable de mi programa:

introduzca la descripción de la imagen aquí

Usando Process Explorer para cerrar el handle, o simplemente deshabilitando el antivirus por un tiempo funciona bien.

 1
Author: Herobrine2Nether,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-07 20:57:05

Obtuve este error al usar el editor Atom y mingw (a través de un paquete llamado gpp-compiler) para C++. Al cerrar la ventana de la consola abierta se solucionó mi problema.

 0
Author: Pro Q,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-30 12:41:03

Causa del problema: El proceso del programa actual todavía se está ejecutando sin interrupción. (Esta es la razón por la que no tienes este problema después de un reinicio)

La solución es simple : Vaya a cmd y escriba el comando taskkill-im process-name.exe-f

Por ejemplo:

 taskkill -im demo.exe -f

Aquí,

Demo-es el nombre de mi programa

 0
Author: Arun Joshla,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-23 10:30:18