2011-01-04 5 views
18

방금 ​​VS2005에서 VS2005로 마이그레이션했으며 간단한 프로그램을 컴파일하지 못했습니다.VS 2010 오류 - 파일 "iostream"을 열 수 없습니다.

#include <iostream> 
using std::cout; 
using std::endl; 

int main() 
{ 
    cout << "Hello Visual Studio 2010 :)" << endl; 
} 

오류 -

1 error TRK0005: Failed to locate: "CL.exe". The system cannot find the file specified. 
2 IntelliSense: cannot open source file "iostream" 
3 IntelliSense: name followed by '::' must be a class or namespace name 
4 IntelliSense: name followed by '::' must be a class or namespace name 
5 IntelliSense: identifier "cout" is undefined 
6 IntelliSense: identifier "endl" is undefined 

PS : 내가 VS2010를 사용하여 완전히 새로운 합니다만 VS 경험을 2005 여기

내가에서 추가 된 디렉토리 목록이되어 있습니다 VS2005 ~ VS2010 '사용자 속성 시트'

실행 파일 -

$(VCInstallDir)bin; $(VSInstallDir)Common7\Tools\bin; $(VSInstallDir)Common7\tools; $(VSInstallDir)Common7\ide; $(VSInstallDir); $(VSInstallDir)\SDK\v2.0\bin 

은 다음과 같습니다 -

$(VCInstallDir)include; $(VCInstallDir)atlmfc\include; $(FrameworkSDKDir)include 

도서관 -

$(VCInstallDir)lib; $(VCInstallDir)atlmfc\lib; $(VCInstallDir)atlmfc\lib\i386; $(FrameworkSDKDir)lib; $(VSInstallDir); $(VSInstallDir)lib 

소스 -

0 1,231,
+0

경로에 기본 헤더 파일의 경로가 포함되어 있습니까? – DumbCoder

+0

네,'CL'은 링커입니다. 컴파일러가 엉망이라고 알 수 없다면. 이것은 실제로 프로그래밍 (SO) 질문보다 sysadmin (Serverfault.com) 질문에 더 많은 것을 만듭니다. –

+5

@ T.E.D .: 아니오,'CL.exe'는 Visual Studio의 컴파일러이며 링커의 이름은'LINK.exe'입니다. –

답변

18

VS (2005, 2008)의 다른 버전이 이미 설치된 두 대의 다른 컴퓨터에서 같은 문제가 발생했습니다. 나는 또한 모든 종류의 이상한 오류를 얻었습니다.

다음 트릭이 저에게 효과적이었습니다. - VS2010의 새 인스턴스 열기 - def 설정으로 새 콘솔 응용 프로그램을 만듭니다. - 컴파일을 시도하십시오 : 약간의 오류가있을 것입니다 - "속성 관리자"열기 - 프로젝트의 Microsoft.Cpp.Win32.user 속성 시트 가져 오기 - VC++ 디렉토리 클릭 - "실행 파일 디렉토리" 들. 드롭 다운을 표시하고 드롭 다운을 클릭 한 다음 "편집"을 선택하십시오. 위에 나열된 디렉토리와 비슷한 모든 필수 디렉토리가 포함 된 상속 된 값을 볼 수 있습니다. "부모 또는 프로젝트 기본값에서 상속"옵션의 선택을 취소하십시오. 다시 확인하고 "확인"을 클릭하십시오.
- 포함, 라이브러리 디렉토리 등에 대해 이것을 반복하십시오. - "적용"및 "확인"을 클릭하십시오. - 프로젝트를 다시 빌드하고 이것이 작동하는지 확인하십시오.

이 작업은 한 번만 수행하면됩니다. VS를 닫고 새 프로젝트를 만들면 컴파일 만 할 수 있습니다. 이를 발견하기 전에 모든 상속 된 값을 수동으로 제거하고 모든 VS 및 SDK 디렉토리에 절대 경로를 추가했습니다. 그것도 효과가 있었지만 훨씬 더 많은 작업이있었습니다.

+0

좋은 답변 랄프 ... 여기서 가장 큰 문제는 오류에서 알 수 있듯이 Visual Studio가 속성 페이지에 정의 된 실행 디렉터리 목록에서 컴파일러 파일을 찾지 못한다는 것입니다. "부모 또는 프로젝트 기본값으로부터 상속"옵션을 선택한 후 "실행 파일 디렉토리"필드의 끝에 $ (ExecutablePath)가 나타나는지 확인하십시오. 그게 당신이 필요한 전부입니다. 각 파일의 개별 프로젝트 설정을 수정하는 경우 해당 프로젝트에 $ (ExecutablePath)도 추가해야합니다. –

+0

이것은 나를 위해 일했습니다! 몇 주 동안 이것에 대해 고민 할 것입니다! 감사! – 8bitcartridge

6

당신이 시도해야

상황은 Visual C++ 컴파일러 (CL.EXE를) 찾을 수 없습니다 시스템 ... :

  • 다시 실행을 비주얼 스튜디오 2010 설치하고 설치 선택 확인 플랫폼 (x86 또는 amd64) 용 Visual C++ 도구.

  • 설치 프로그램을 복구 모드로 실행하십시오. 이 방법으로 문제가 해결되지 않으면

:

5

동일한 문제가있어 검색을 통해이 페이지를 찾았지만 사용자 속성 시트에 대한 Ralf의 답변을 제대로 파악하지 못했고 다시 설치하는 데 운이 없었습니다. 나는 Ralf의 대답이 나를 위해 일했을 것이라고 생각하지만, 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 "속성"을 선택할 때 나타나는 "속성 페이지"대화 상자를보고있었습니다. 나는 그것이 "재산 관리자"와 다르다는 것을 깨닫지 못했습니다.

그래서 msdn 포럼에서 묻고 an answera nice explanation of property sheets을 받았습니다.

<?xml version="1.0" encoding="utf-8"?> 
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 

</Project> 

사용자 속성 시트가 ​​<localappdata>c:\users\<username>\appdata\localMicrosoft.Cpp.Win32.user.props<localappdata>\microsoft\msbuild\v4.0 아래된다 : 나를 위해 일한 솔루션은 다음과 같이 비워두고, 텍스트 편집기에서 사용자 속성 시트를 편집하고 모든 경로를 삭제했다 Win7에서.

+1

오 마이 신의 일 –

0

나는 왜 이것이 효과가 있었는지 알 수는 없지만이 오류가 발생하여 설치하고 있습니다. Visual Studio Power Commands이 문제를 해결했습니다. 이 확장은 ExecutableDirectories 매크로를 직접 수정할 수있는 구성 등록 정보 -> VC++ 디렉토리를 추가합니다.

관련 문제