Не удается открыть выходной файл, разрешение запрещено - PullRequest
60 голосов
/ 29 июля 2011

Так что я продолжаю получать эту ошибку при попытке компилировать код C ++ с использованием CodeBlocks.

не может открыть выходной файл [filename.exe] отказано в разрешении

Это только началось сегодня, и оно носит спорадический и противоречивый характер. Обычно он исчезает, если я выключаю CodeBlocks и перезапускаю проект, но не всегда. Иногда это даже проходит, когда я просто нажимаю F9 (сборка и запуск) несколько раз. Я всегда проверяю диспетчер задач, но никогда не выполняется ни одного .EXE-файла с именем моего файла или чем-либо связанным с ним.

Я также заметил, что если возникает эта проблема, а затем я пытаюсь удалить .EXE вручную или иным образом взаимодействовать с ним, Windows говорит мне, что для этого мне нужно разрешение администратора (это частный ПК, и если Я знаю, что я администратор в этом).

В первый раз, когда это произошло, единственное, что я добавил в код помимо того, что было в предыдущей версии, это отчет об отладке, отправленный cout - вряд ли что-то загадочное. Иногда это происходит, даже если код не был изменен из предыдущей версии.

Что бы это могло быть? Это еще не разрушает игру, но это раздражает, и я бы предпочел, чтобы это не ухудшалось.

РЕДАКТИРОВАТЬ: Это уже устарело, но на случай, если у кого-то возникнут аналогичные проблемы, я в настоящее время использую обходной путь, чтобы просто последовательно удалить [filename.exe] перед попыткой повторного запуска кода. Это позволяет избежать проблемы, хотя и раздражает.

Ответы [ 18 ]

94 голосов
/ 29 июля 2011

проверьте, что «filename.exe» не запущен, я полагаю, вы используете Microsoft Windows, в этом случае вы можете использовать либо диспетчер задач, либо Process Explorer: http://technet.microsoft.com/en-us/sysinternals/bb896653, чтобы убить «filename.exe» перед попыткойгенерировать его.

11 голосов
/ 29 сентября 2012

Я столкнулся с той же проблемой, что и у вас. Я обнаружил, что это может иметь какое-то отношение к тому, как вы завершаете свой результат выполнения. Когда вы запускаете свой код, независимо от того, есть ли у него распечатка, отладчик вызывает консоль, которая выдает «Нажмите любую клавишу, чтобы продолжить ...». Если вы завершаете работу консоли нажатием клавиши, все в порядке; если вы сделаете это, нажав кнопку закрытия, проблема возникнет, как вы описали. Когда вы завершите его последним способом, вам придется подождать несколько минут, прежде чем вы сможете перестроить свой код.

4 голосов
/ 25 сентября 2014

У меня просто была такая же проблема. И я почувствовал, что это всегда происходит, когда я запускаю программу и изменяю некоторый код, не завершая работу программы. После этого появляется сообщение «Не удается открыть ...».

Однако я избавился от этого, нажав кнопку «Завершить» в самом верхнем правом углу окна консоли (красная кнопка) и после этого «удалить все завершенные запуски» (два символа x рядом с завершением). кнопка). Кажется, это закрывает работающую программу и все работает нормально после :) надеюсь, это может кому-нибудь помочь

3 голосов
/ 29 июля 2011

Эта ошибка обычно возникает, когда в среде IDE возникает проблема из-за сбоя или другого сбоя, и он все еще удерживает EXE-файл, не позволяя пользователю (вам) перезаписать / удалить EXE-файл во время перестроения.

2 голосов
/ 11 декабря 2013

Проблема связана с ответом Сэма:

"столкнулся с той же проблемой, что и вы. Я обнаружил, что это может иметь некоторые отношения с тем, как вы заканчиваете свой результат бега. Когда ты запустить ваш код, независимо от того, есть ли у него распечатка, отладчик вызовет консоль, которая печатает «Нажмите любую клавишу, чтобы продолжить ...». Если вы прекратите консоль нажатием клавиши, все нормально; если вы сделаете это, нажмите закрыть Кнопка, проблема приходит, как вы описали. Когда вы прекратите это в последний способ, вам придется подождать несколько минут, прежде чем вы сможете перестрой свой код. "

Избегайте уничтожения процессов, и у нас есть два варианта: подождите, пока процесс освободит файл .EXE, или эта проблема будет решена быстрее при перезапуске IDE.

2 голосов
/ 24 марта 2013

Здравствуйте, я понимаю, что этот пост старый, но все равно мое мнение.Эта ошибка возникает, когда вы закрываете окно вывода консоли, используя значок закрытия вместо нажатия «любая клавиша для продолжения»

1 голос
/ 29 июля 2011

Вы можете использовать Process Explorer из sysinternals, чтобы найти, какой процесс имеет открытый файл.

1 голос
/ 13 сентября 2013

Я переустановил C :: B на диске D, тогда как папка с моими программными файлами находится на диске C

Я не знаю причину, но это работает:)

1 голос
/ 31 октября 2012

Попробуйте перезапустить вашу IDE.Это сработало для меня.Хотя я пытался завершить процесс в диспетчере задач, процесс так и не был уничтожен.

1 голос
/ 08 августа 2014

хорошо, как только у меня возникла та же проблема, и после отслеживания процесса, который использовал файл, я обнаружил, что это был антивирус (PANDA) ... я просто разблокировал файл и просто сработал .. .. хорошо для моего опыта я использовал Unlock 1.9.2 ... попробуйте iy out ..

...