A criação de um executável C ++ bloqueia o arquivo por algum tempo

1

Eu tenho um erro que começou a aparecer há apenas alguns dias. Estou executando o Windows 7 Professional x64 bits.

Eu tenho um arquivo .cpp e uso o prompt de comando para executar o seguinte comando:

g++ -std=c++11 A.cpp

Cria o executável a.exe. No entanto, se eu executar o mesmo comando novamente imediatamente, recebo este erro: -

c:/mingw/bin/../lib/gcc/mingw32/5.3.0/../../../../mingw32/bin/ld.exe: cannot 
open output file a.exe: Permission denied
collect2.exe: error: ld returned 1 exit status

Se eu tentar excluir o executável, receberei "Você precisa de permissão para executar esta ação" (estou usando uma conta de administrador). Sob a guia de segurança nas propriedades, diz "Não é possível exibir o proprietário atual". Se eu tentar alterar a propriedade, recebo "Não é possível definir um novo proprietário em a.exe. O acesso é negado."

Além disso, se eu tentar abrir o arquivo, ele diz "O Windows não pode acessar o dispositivo, o caminho ou o arquivo especificado. Talvez você não tenha as permissões apropriadas para acessar o item".

O mais estranho de tudo é que, após cerca de um minuto, o arquivo desaparece automaticamente.

Nada disso acontece se eu executar o comando de compilação apenas uma vez. Se eu executá-lo uma vez, posso excluir o executável, executá-lo e o proprietário exibirá o nome da minha conta. O arquivo também não desaparece.

Por favor me ajude com isso, é muito chato. Eu tentei com o meu anti-vírus (Kasperksy Internet Security) desligado, e isso ainda acontece.

    
por Cerberus 27.06.2017 / 18:06

2 respostas

1

Eu encontrei este tópico neste site, e enquanto o problema listado é um pouco diferente, a solução (Habilite o serviço" Application Experience "e configure-o para" Automatic ") funcionou para mim.

    
por 03.07.2017 / 13:28
0

Uma ferramenta anti-malware está verificando o executável recém-criado e bloqueando-o? É o aplicativo g ++ que está bloqueado?

Tente uma ferramenta de terceiros para verificar o que está causando o bloqueio do arquivo, como LockHunter . Ele deve mostrar quais processos têm um identificador aberto para esse arquivo.

Outra possibilidade: indexação do Windows Search, que bloqueou a exclusão de mensagens do Thunderbird por minutos. Desabilitar Pesquisar ou excluir todos os foilders usados pelo g ++ ajudaria a confirmar isso.

    
por 27.06.2017 / 21:57