2010-07-05 4 views
2

문제 설명 :"파일을 열 수 없습니다"컴파일 타임 오류

이따금 디버깅, 나는 다음과 같은 오류가 발생합니다. projectName 내 프로젝트의 이름입니다

1>------ Build started: Project: projectName, Configuration: Debug Win32 ------ 
1>LINK : fatal error LNK1104: cannot open file 'C:\Projects\projectName\Debug\projectName.exe' 
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 

하는 것으로 : 나는 비주얼 스튜디오 2010을 사용하고 있습니다. 디버깅, 변경 및 다시 디버깅 할 때 오류가 발생합니다 (모든 작업을 수행 한 후 위의 오류가 프로그램을 두 번째로 실행하는 대신 표시됨). MAIN.CPP에

  • 다음 코드를 복사하여 폴더 소스에 "MAIN.CPP"라는 파일을

    1. 가 비어있는 새 C++ 프로젝트를 만들고 추가

      단계

      는 복제하기 :

      int main(){ 
          return 0; 
      } 
      
    2. 녹색 디버그 화살표 단추를 클릭하고 프로그램 실행을 확인합니다. 디버거가 닫혀 있고 디버깅 세션이 끝났는지 확인하십시오. 프로세스 탐색기를 열고 프로젝트의 exe가 더 이상 실행되고 있지 않은지 확인하십시오 (있는 경우 닫을 때까지 기다리십시오).
    3. MAIN.CPP의 내용을 삭제하고이 코드 (이상 사용되는 코드와 다른 제대로 컴파일 다른 코드)로 대체 :

      #include<iostream> 
      int main(){ 
          std::cout<<"hello\n"; 
          return 0; 
      } 
      
    4. 녹색 디버그 화살표 버튼을 클릭합니다. 프로그램을 실행하는 대신 IDE에 치명적인 LNK1104 오류가 표시됩니다. 이제 문제가 복제되었습니다.

    해결 방법에 대한 아이디어가 있으십니까?


    추가 세부 사항 :

    • 나는 오류 팝업이 밝히는 나타나, 권한을 변경하거나 오류가 발생했습니다 후 projectName.exe을 삭제하려고하면 :

      당신에게 이 작업을 수행 할 수있는 권한이 필요합니다.

      이 파일을 변경하려면 컴퓨터 관리자의 허가가 필요합니다 르

    • 나는 윈도우 7

    • 을 사용하고 내가 사용하는 계정은 관리자 계정,하지만 난이 아닌 관리자 계정을 사용하는 경우이 문제는 정확히 같은 발생합니다.

    • 오류가 발생한 후 2-3 분 동안은 프로젝트를 다시 빌드하거나 디버깅 할 수 없지만 대략 그 시간이 지나면 다시 시작 단계의 시작 부분에서 다시 시작할 수 있습니다.


    UPDATE : 문제가 100 담당자 :

    나는 모든 서비스, 프로세스 및 응용 프로그램을 중지 해봤를 얻을 해결하는 솔루션을 제공 할 수 BOUNTY

    사람이 VC++에서 파일에 액세스하는 것을 방해 할 수 있으며 문제가 여전히 발생하고 있습니다. 또한 관리자로 vC++를 실행해도 도움이되지 않습니다.

  • 답변

    7

    이것은 Windows 탐색기 버그 일 가능성이 높습니다. 버그입니다.

    .exe 파일이 Windows 탐색기에서 선택/집중되어 있지 않은지 확인하십시오. Vista에서는 링크하는 동안 Windows 탐색기에서 실행 파일을 선택하면 종종 LNK1104 - 오류가 발생합니다.

    그래도 도움이되지 않는다면 다른 프로그램이 파일을 "선택"하지 않았는지 확인하십시오.

    는 편집 :This program

    +0

    감사합니다. 그 프로그램은 완벽하게 작동했습니다! – Cam

    0

    파일을 잠그지 않은 경우에는 절대로 발생하지 않습니다. 여전히 보유하고있는 프로파일 링 또는 테스트 도구가 있습니까?

    참고 : 나는 그것을 재현 할 수 없었습니다.

    편집> 프로그램이 실행되는 동안 (작업 관리자와 대조적으로) 프로세스 탐색기를 열어 보았습니까? exe가 다른 프로세스에서 실행중인 경우 표시됩니다.

    맬웨어를 확인하셨습니까? 최근에는 컴퓨터에서 실행되는 모든 프로세스를 부트 스트랩 (bootstrap) 할 수있는 멀웨어가 발생했으며 작업 관리자는 그다지 유익하지 않았습니다.

    +0

    아니요, 아닙니다. 나는 몇 가지 추가 세부 사항으로 질문을 편집했다. – Cam

    +0

    작업 관리자는 실제로 프로세스 탐색기를 의미했습니다 :) 그에 따라 편집했습니다. 나는 확실히 내가 악성 코드가 없다고 확신한다. 나는 확실히 다른 바이러스 검사를 할 것이다. ... – Cam

    0

    내 생각 엔 파일에 잠금 기능이있는 것 같습니다. 어떤 이유로 든 VS는 컴파일 결과를 출력하기 위해 파일을 열 수 없습니다. SnOrfus가 암시 하듯이 프로파일 링이나 테스팅 도구가 열려 있지 않은지 확인하십시오. 또한 재 구축을 시도하기 전에 프로그램 실행 (디버그 또는 기타) 사이에 몇 초 정도 기다려야합니다. 디버거가 파일에 액세스하려고 시도 할 때 디버거가 여전히 파일에 대한 잠금을 유지할 정도로 빠르게 작성하고있을 가능성이 있습니다.

    +0

    그건 내가 처음에 생각한 것이다.그러나 이상한 점은 오류가 발생한 후에도 몇 분 * 동안 다시 만들거나 아무것도 만들 수 없다는 것입니다. 몇 초 (1-3 초)가 걸리면 그 정도가 달라집니다. – Cam

    +0

    그건 이상한데, 몇 분 동안 정지 한 후 디버거가 멈추는 몇 가지 이상한 경우가 있는지 궁금합니다 ... 작업 관리자를 열면 디버거로 보이는 모든 프로세스를 식별 할 수 있습니까? –

    1

    프로세스 탐색기를 사용하면 실행 파일 자체가 실행되고 있지 않더라도 프로세스에 해당 파일에 대한 핸들이 열려 있는지 확인할 수 있습니다. 찾기 -> 핸들 또는 DLL 찾기 ...로 이동하여 projectName.exe를 입력하면 열려있는 모든 프로세스 목록이 표시됩니다.

    4

    나는 것 같았다 작성했습니다 새로운 프로그램이 문제를 가지고 있었다 (페이지가 다른 "잠금 해제"도구에 대한 링크가 포함되어 aswell) 파일을 잠근하는 과정을 보여줄 수 있습니다 한 번 컴파일 할 수 있지만 컴파일이 끝날 때와 후속 빌드에서 오류가 발생했습니다. 내 항 바이러스 프로그램 인 BitDefender는 exe 파일을 잠갔습니다. 내 exe는 발견 된 바이러스 목록에있었습니다. Bitdefender를 5 분 동안 해제하고 다시 컴파일 한 다음 Bitdefender가 다시 시작될 때 또는 그 이후에 프로그램이 잠기지 않았습니다.

    관련 문제