2016-02-04 2 views
9

Я пытаюсь запустить код, который использует make. Я загрузил и установил как MinGW (стандартный 32-разрядный), так и TDM-GCCs вкус MinGW на моей 64-битной машине Windows 7.Windows удаляет выполнение исполняемого файла при запуске. Зачем?

Когда я бегу make (т.е. mingw32-make.exe) в режиме администратора, я получаю следующее сообщение об ошибке:

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

Странные/страшный в том, что, при беге, она немедленно удаляет файл ех.

Я провел контрольную сумму SHA1, как это рекомендовано в комментариях с помощью Microsoft (R) File Checksum Integrity Verifier 2.05:

C:\path\to\folder>fciv.exe -sha1 mingw32-make.exe 
// 
// File Checksum Integrity Verifier version 2.05. 
// 
c8ae5c780ab7bed652883d6443b5bfe5e23d30c9 mingw32-make.exe 

Я не понимаю, что это означает выход, но, возможно, это полезно кто то.

Примечания:

  1. Это происходит независимо от того, где находится файл на моем компьютере.
  2. Такое поведение является специфическим для программы make (другие, таких, как gfortran и gcc, по всей видимости, работают нормально)
  3. Переименование файла не имеет значения.
  4. Я являюсь администратором на ПК
  5. Такое же поведение при запуске программы из проводника или командной строки.
  6. Моя антивирусная программа (Avast) не обнаруживает никаких проблем с файлом при его сканировании.
  7. Я установил файл MinGW с this SourceForge.
  8. У меня есть веб-установщик TDM-GCC от this page.
  9. Размер файла 219,662 байт (как из основного MinGW и TDM-ССАГПЗ пакетов)
  10. Я запустить make из командной строки, в которой я начал командную строку путем выбора Run as Administrator в контекстном меню.
  11. Я также попытался запустить make, выбрав Run as Administrator, когда у меня есть выбор.
  12. Выполнение команды mingw32-make при возникновении такой ситуации. Я также попытался переименовать его в такие вещи, как make и foo с тем же результатом.
  13. В первый раз, когда это произошло с обоими MinGW, он удалил исходный файл, и я его снова установил с помощью приложения mingw-get. После этого я начал делать копии оригинала mingw32-make для тестирования.
  14. Для make исполняемый файл, у меня есть все разрешения (включая Read & execute), за исключением специального поля разрешений.
+1

Антивирусное программное обеспечение? – tripleee

+0

@ tripleee Я так не думаю. Avast был довольно вокальным в прошлом, когда ему не нравилось то, что я запускаю. – NauticalMile

+0

Для того, чтобы кто-либо мог воспроизвести это, не говоря уже об устранении неполадок, вам необходимо предоставить очень конкретные сведения об этом точном двоичном файле. Именно там, где вы его получили; каков его размер и контрольная сумма SHA1? – tripleee

ответ

3

После использования менеджер процессов Я выяснил, что это был действительно Аваст, это была проблема: SA пара строк показала, что avast фактически удалил файл до того, как окна добрались до его выполнения, что стало причиной появления сообщения Windows. Я положил Avast на «Тихий режим» некоторое время назад; Я думал, что единственной целью этого режима было подавление уведомлений о незначительных обновлениях, но, по-видимому, оно также дало разрешение Avast также работать с «угрозами».

После выяснения, что решение было простым. Я просто зашел в настройки и создал исключение для файла mingw32-make.exe. Теперь он работает без проблем.

Большое спасибо за помощь!

1

учетная запись пользователя имеет привилегии администратора, но когда пользователь начал работать, не все привилегии принимаются во внимание, просто запустите приложение для компиляции с запуска в режиме администратора, попробуйте следующее: https://technet.microsoft.com/en-in/library/cc781763(v=ws.10).aspx

+0

Я единственный пользователь на этом компьютере; Я не могу работать как любой другой пользователь. – NauticalMile

+0

действительно, когда у вас есть приложение, и вы хотите, чтобы он запускался с привилегией администратора, тогда вы явно указываете, что хотите, чтобы он выполнялся с правами администратора. –

+0

Это не объясняет, почему файл исчезнет. –