Ld.exe: невозможно открыть выходной файл...: Permission denied
Недавно я установил CodeBlocks с mingw32 на Windows 7 Ultimate 32bit, чтобы отключить мои навыки c, но эта проблема меня несколько озадачила.
Я решил запустить короткий генератор Фибоначчи, чтобы убедиться, что моя установка работает, но я столкнулся с препятствием.
Программа компилирует, связывает и еще что-то вроде очарования, и я получаю соответствующий исполняемый файл, который работает как ожидалось.
Проблемы возникают, если я пытаюсь скомпилировать снова, тогда я получаю следующее:
c:/codeblocks/mingw/bin/../lib/gcc/mingw32/4.4.1/../../../../mingw32/bin/ld.exe: cannot open output file bin\Debug\Fibonacci.exe: Permission denied
Я даже не могу редактировать разрешения сгенерированного исполняемого файла.
Я проверил обычных подозреваемых:
- Исполняемый файл не выполняется.
- Путь к исполняемому файлу доступен для чтения/записи в mingw32 (иначе он не смог бы построить в первую очередь)
- Я не запускаю cygwin в любой форме или форме.
И теперь для смешного бита: обычно через несколько минут любые исполняемые файлы, созданные mingw32, которые отображают это поведение с правами доступа, автоматически исчезают без какого-либо вмешательства со мной.
Я искал это несколько, но большинство других результатов были либо неопределенными, либо неприменимыми.
Интересно, есть ли некоторые настройки безопасности для Windows 7, играющие хаос с моим .exe, но я не настолько осведомлен о Win 7, чтобы знать, с чего начать поиск.
У кого-нибудь есть идеи?
Ответы
Ответ 1
У меня была точно такая же проблема сразу после отключения некоторых (на мой взгляд ненужных) служб Windows. Оказалось, что когда я снова включил "Application Experience"
все возобновило работу нормально.
Может быть, вам просто нужно включить эту услугу? Чтобы включить приложение Опыт:
-
Нажмите кнопку Пуск Windows.
-
В поле "Поиск программ и файлов" введите services.msc
и нажмите кнопку поиска. Откроется новое окно с названием "Услуги".
-
Щелкните правой кнопкой мыши строку "Application Experience" и выберите "Properties" во всплывающем меню.
-
Измените тип запуска на "Автоматический (отложенный запуск)".
-
Перезапустить компьютер.
Опыт применения должен предотвратить проблему в будущем.
Ответ 2
Если вы считаете, что исполняемый файл заблокирован процессом, попробуйте Process Explorer из SysInternals. В файле /handle введите Fibonacci.exe и вы увидите, кто держит файл.
Если этого недостаточно, вы можете использовать Process Monitor (снова из SysInternals), чтобы следить за действиями всех процессов в вашей системе на Fibonacci.exe.
С небольшим анализом (стеки вызовов) вы узнаете, почему отказ в доступе к файлу запрещен и что он исчезает.
Ответ 3
Ваша программа все еще работает. Вы должны убить его, закрыв окно командной строки.
Если вы нажмете элемент управления alt delete, диспетчер задач, process `s (убейте те, которые соответствуют вашему имени файла).
Ответ 4
Лучшим решением является консоль в eclipse IDE и нажмите красную кнопку, чтобы завершить работу программы.
Вы увидите, что ваша программа запущена, и вывод можно увидеть там.:)!!
Ответ 5
-
Открыть диспетчер задач → Процессы → Нажмите на .exe(Fibonacci.exe) → Завершить процесс
если он не работает
-
Закройте Eclipse IDE (или любую другую IDE, которую вы используете) и повторите шаг 1.
Ответ 6
Я имел такое же поведение и исправил его, запустив Code:: Blocks в качестве администратора.
Ответ 7
У меня была аналогичная проблема. Используя бесплатную утилиту Unlocker (версия 1.9.2), я обнаружил, что мое антивирусное программное обеспечение (Panda бесплатно) оставило зависающую блокировку в исполняемом файле, даже если она не обнаружила никакой угрозы. Unlocker смог разблокировать его.
Ответ 8
Получается та же проблема. Прочитайте this. Отключено антивирусное программное обеспечение (mcaffee). Et voila
Подтверждено антивирусным журналом:
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
Ответ 9
Это может быть ваше антивирусное программное обеспечение.
В моем случае Malwarebytes держал дескриптор исполняемого файла:
![введите описание изображения здесь]()
Использование Process Explorer для закрытия дескриптора или просто отключение антивируса для работы очень просто.
Ответ 10
Я получил эту ошибку при использовании редактора Atom и mingw (через пакет, называемый gpp-compiler
) для C++. Закрытие открытого окна консоли устранило мою проблему.
Ответ 11
Неполадка Причина: процесс текущей программы все еще выполняется без прерывания. (Это причина, почему у вас не возникла эта проблема после перезагрузки)
Исправить это просто: перейдите в cmd и введите команду taskkill -im process-name.exe -f
Например:
taskkill -im demo.exe -f
Вот,
демо - это название моей программы
Ответ 12
у меня возникла похожая проблема. Bitdefender автоматически помещает в карантин каждый exe файл, который я создал MinGW g++. Вместо полного exe файла я нашел файл со странным расширением 'qzquar' testAutoPtr1.exe.48352.gzquar
Когда я открыл карантинные объекты в Bitdefender, я обнаружил, что там находится мой exe файл.