source

ld.exe: 출력 파일을 열 수 없습니다...: 권한이 거부되었습니다.

gigabyte 2022. 7. 17. 16:46
반응형

ld.exe: 출력 파일을 열 수 없습니다...: 권한이 거부되었습니다.

최근 CodeBlocks with 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에 읽기/쓰기 가능(그렇지 않으면 처음부터 빌드할 수 없음)
  • 난 어떤 형태든 사이그윈을 운영하지 않아

자, 이제 재미있는 부분:보통 몇 분 후 mingw32에 의해 생성된 이 접근 거부 동작을 나타내는 실행 파일은 자동으로 사라집니다.

저는 이것을 약간 검색해 보았지만, 다른 대부분의 결과들은 모호하거나 적용할 수 없었습니다.

Windows 7 의 시큐러티 설정이, 제 .exe 의 시큐러티 설정을 엉망으로 하고 있는 것은 아닐까 생각합니다만, Win 7 의 검색의 개시점에 대해서는 잘 모릅니다.

생각나는 사람?

프로그램이 아직 실행 중입니다.명령줄 창을 닫아서 죽여야 합니다.control alt delete, 태스크 매니저, 프로세스(파일명과 일치하는 항목 제거)를 누릅니다.

문제 원인 : 현재 프로그램의 프로세스가 중단 없이 계속 실행되고 있습니다.(재기동 후 이 문제가 발생하지 않는 이유)

수정은 간단합니다. cmd로 이동하고 taskkill -im process_name.exe -f 명령을 입력합니다.

예:

 taskkill -im demo.exe -f

여기서,

demo - 내 프로그램 이름입니다.

불필요한 Windows 서비스를 끈 직후에도 같은 문제가 발생했습니다. ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★."Application Experience"모든 것이 정상으로 돌아갔습니다.

단순히 이 서비스를 켜야 하는 것일 수도 있습니다.응용 프로그램 환경을 켜려면:

  1. Windows 의 기동 버튼을 클릭합니다.

  2. 및 파일 검색(files)]에 [프로그램 및 파일 검색(Search programs and files)]라고 입력합니다.services.msc검색 버튼을 클릭합니다.서비스하다

  3. Application Experience(애플리케이션 익스피리언스) 행을 마우스 오른쪽 버튼으로 클릭하고 팝업 메뉴에서 Properties(속성)를 선택합니다.

  4. 시작 유형을 "자동(지연된 시작)"으로 변경합니다.

  5. 컴퓨터를 재기동합니다.

어플리케이션 익스피리언스에서는, 장래의 문제를 회피할 수 있습니다.

실행 파일이 프로세스에 의해 잠겨 있다고 생각되는 경우 SysInternals의 프로세스 탐색기를 사용해 보십시오.파일/핸들에 Fibonacci를 입력합니다.exe를 실행하면 파일을 보유한 사용자를 확인할 수 있습니다.

불충분한 경우 프로세스모니터(SysInternals에서 다시)를 사용하여 시스템상의 모든 프로세스의 액티비티를 Fibonacci.exe로 추적할 수 있습니다.약간의 분석(콜스택)을 통해 파일에 대한 액세스가 거부된 이유와 파일이 사라지게 된 원인을 알 수 있습니다.

저도 같은 행동을 했고, Code::를 실행하여 수정했습니다.관리자 권한으로 차단합니다.

최적의 솔루션은 이클립스 IDE 콘솔로 이동하여 빨간색 버튼을 클릭하여 프로그램을 종료하는 것입니다.프로그램이 실행 중이고 출력이 표시됩니다. :)

안티바이러스 소프트웨어일 수 있습니다.

내 경우 멀웨어바이트가 내 프로그램 실행 파일의 핸들을 잡고 있었다.

여기에 이미지 설명 입력

프로세스 탐색기를 사용하여 핸들을 닫거나 안티바이러스를 조금 비활성화하면 정상적으로 작동합니다.

같은 문제가 생겼어요.이거 읽어주세요.안티바이러스 소프트웨어(Mcaffee)를 무효로 했다.에트보일라

안티바이러스 로그로 확인:

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. 태스크 매니저 열기 -> 프로세스 -> .exe(Fibonacci.exe) -> 프로세스 종료

    안 되면

  2. Eclipse IDE(또는 사용하는 IDE)를 닫고 1단계를 반복합니다.

저도 비슷한 문제가 있었어요.Unlocker(버전 1.9.2)라는 프리웨어 유틸리티를 사용하여 바이러스 백신 소프트웨어(Panda 프리)가 위협을 감지하지 못했는데도 실행 파일에 행 잠긴 상태로 남아 있는 것을 발견했습니다.언락커는 잠금을 해제할 수 있었다.

Atom 에디터와 mingw를 사용할 때 이 오류가 발생하였습니다.gpp-compilerC++( 「」)열린 콘솔 창을 닫으면 문제가 해결되었습니다.

저도 비슷한 문제를 겪었어요.Bitdefender는 MinGW g++에 의해 작성된 각 exe 파일을 자동으로 검역했습니다.전체 exe 파일 대신 이상한 확장자 'qzquar' 테스트를 가진 파일을 찾았습니다.AutoPtr1.exe.48352.gzquar

Bitdefender에서 검역된 항목을 열었을 때 내 exe 파일이 검역된 것을 발견했습니다.

언급URL : https://stackoverflow.com/questions/7655471/ld-exe-cannot-open-output-file-permission-denied

반응형