아~ 젠장할...
20061116 또 다시 C1001 내부 컴파일러 오류를 만나다...
하드웨어 문제인가...
램, 그래픽카드, 파워 다 갈아봤다...
남은건 엄마보드...
컴터 조립에 OS재설치에 젠장 3일을 소비했다...
내부 컴파일러 오류 및 Windows 2003 Server 퍼런화면때문에...
아직 엄마보드는 못갈아 봤다...
엄마보드갈고 다시 인내심 테스트 하러 간다...
==========================================================================================
http://support.microsoft.com/kb/305980/ko
PRB: C1001 컴파일러 오류 메시지 - 문제 해결 제안 사항
기술 자료 ID | : | 305980 |
마지막 검토 | : | 2006년 2월 17일 금요일 |
수정 | : | 2.0 |
현상
원인
"C1001" 오류 메시지가 발생하는 경우는 다음과 같습니다.
• | 컴파일러에 알려진 버그가 있는 경우 |
• | 컴파일러에 새로운 버그가 있는 경우 |
• | 소스 파일에서 오른쪽 중괄호(})가 누락된 경우 |
• | 선택한 컴파일러 최적화 옵션 |
• | 파일이 손상된 경우 |
• | 컴퓨터에 하드웨어 문제가 있는 경우 |
해결 방법
1. | 오류 메시지에 프로젝트의 파일 이름과 괄호로 묶은 숫자가 나타나면 이 숫자는 컴파일러에서 알 수 없는 오류를 발견한 파일의 줄 번호를 나타냅니다. 오류 메시지에 파일 이름이 없으면 3단계로 진행하십시오. Visual Studio IDE나 명령줄에서 이 파일을 컴파일합니다. CL /c Test.cpp 명령을 사용합니다. 이 명령을 실행하기 전에 Vcvars32.bat을 실행하여 환경 변수를 설정해야 할 수도 있습니다. 이 파일은 Visual C++ installation directory\VC98\Bin 폴더에 있습니다. 오류 메시지가 다시 나타나면 로컬 온라인 도움말과 Microsoft Developer Network(http://search.microsoft.com (http://search.microsoft.com/))에서 키워드 "C1001", 컴파일러 파일 이름(예: "Msc1.cpp"), 오류 메시지의 줄 번호(예: 줄 "1089")가 들어 있는 Microsoft 기술 자료 문서를 찾으십시오. 검색한 기술 자료에서 문제의 원인과 해결 방법에 대한 설명을 제공할 수 있습니다. |
||||||||||||
2. | 오류가 보고된 소스 파일의 특정 줄에 코딩 오류가 있는지 확인합니다. 코드가 복잡한 식이면 오류가 보고된 줄을 다시 작성하거나 문제가 되는 줄 주변에 있는 코드 몇 줄을 다시 작성합니다. 그러면 문제가 해결될 수도 있습니다. | ||||||||||||
3. | 최적화 옵션을 사용하여 파일이나 프로젝트를 컴파일하면 그로 인해 오류가 발생할 수 있습니다. 이 절에서 더 진행하기 전에 프로젝트를 Win32 디버그 버전으로 빌드해 봅니다. Win32 디버그 빌드가 "C1001" 오류 메시지를 생성하면 5단계로 진행합니다. 최적화 옵션을 하나, 여러 개 또는 모두 제거하여 문제를 해결할 수도 있습니다. Visual Studio 6.0 IDE에서 Win32 Release 빌드를 선택한 경우 C 또는 C++ 프로젝트 설정에서 /O1(크기 최소화), /O2(속도 최대화), /Ox(최대 최적화) 또는 사용자 지정을 선택할 수 있습니다. 사용자 지정에서 원하는 다른 옵션을 선택할 수 있습니다. 어떤 옵션에 문제가 있는지 확인하려면 한 번에 하나씩 옵션을 선택 취소한 다음 오류가 발생하지 않을 때까지 컴파일해 봅니다. 일반적으로 가장 가능성이 높은 옵션은 /Og, /Oi, /Ob1 및 /Oa입니다. Visual Studio .NET IDE를 사용할 때 컴파일러 옵션을 변경하는 방법에 대한 내용은 다음 기술 자료 문서를 참조하십시오.
311065 (http://support.microsoft.com/kb/311065/) HOWTO: Visual C++ .NET 컴파일러의 기본 컴파일러 옵션 수정
/O1, /O2 및 /Ox의 컴파일러 옵션 조합은 다음과 같습니다.
/O1: /Og /Os /Oy /Ob2 /Gs /Gf /Gy
명령줄에서 컴파일할 때는 /O2 /Oi-에서처럼 빼기 기호(-)를 사용하여 옵션을 하나 이상 제거합니다. 앞의 경우에는 /O2에서 /Oi 옵션이 제거됩니다. 또는, 옵션 하나로 시작해서 한 번에 하나씩 다른 옵션을 추가하여 어떤 옵션 또는 옵션 조합이 C1001 오류를 발생시키는지 확인할 수 있습니다./O2: /Og /Oi /Ot /Oy /Ob2 /Gs /Gf /Gy /Ox: /Og /Oi /Ot /Oy /Ob2 /Gs (참고: Visual C++ 6.0 및 5.0에서는 /Ob2 대신 /Ob1을 사용합니다. 오류를 발생시킨 최적화 옵션을 확인한 후 프로그래밍 방식으로 그 옵션을 사용할 수 없게 설정할 수 있습니다. 옵션을 사용할 수 없게 하려면 아래의 예제 코드(/Og 옵션을 사용할 수 없게 함)에 나와 있는 것처럼 오류가 발생한 함수 주위에 optimize pragma off 인수를 사용한 다음 나머지 모듈에서는 이 옵션을 사용할 수 있도록 설정합니다. 모든 옵션을 사용할 수 없게 설정하거나 사용할 수 있게 설정하려면 #pragma optimize( "", off ) 또는 #pragma optimize( "", on )을 각각 사용합니다.
|
||||||||||||
4. | 오류가 보고되는 소스 파일의 줄 수가 컴파일러 한계인 65,536보다 적은지 확인합니다. 줄 수가 한계보다 많으면 파일에서 몇 줄을 주석으로 처리한 다음 오류가 다시 발생하는지 확인합니다. | ||||||||||||
5. | 도킹 스테이션에서 휴대용 컴퓨터를 사용하는 경우에는 도킹 스테이션에서 휴대용 컴퓨터를 제거하고 컴퓨터를 다시 시작한 다음 오류가 더 이상 발생하지 않는지 확인합니다. 일부 휴대용 컴퓨터 모델에서 이런 문제가 발생할 수 있습니다. | ||||||||||||
6. | 하드 디스크에 사용할 수 있는 디스크 공간이 충분히 있는지 확인합니다. 권장되는 디스크 공간은 최소 500MB입니다. 또한 최대 가상 메모리 페이징 파일 크기가 500MB 이상으로 설정되었는지 확인합니다. | ||||||||||||
7. | 컴퓨터를 안전 모드에서 다시 시작한 다음 오류가 다시 발생하는지 확인합니다. 오류가 더 이상 발생하지 않는다면 컴퓨터에 손상된 드라이브가 있는 것입니다. 비디오 드라이버가 손상되었을 가능성이 높습니다. 드라이버 제조업체에 새 드라이버를 요청하십시오. | ||||||||||||
8. | 컴퓨터에서 실행 중인 바이러스 백신 소프트웨어를 모두 중지하거나 제거합니다. | ||||||||||||
9. | 앞에서 설명한 방법으로 오류가 해결되지 않으면 다음과 같이 합니다.
|
참조
http://support.microsoft.com/default.aspx?xmlid=fh%3BEN-US%3Bvcnet (http://support.microsoft.com/default.aspx?xmlid=fh%3ben-us%3bvcnet)
Microsoft 제품 관련 기술 전문가들과 온라인으로 정보를 교환하시려면 Microsoft 뉴스 그룹 (http://support.microsoft.com/newsgroups/default.aspx)에 참여하시기 바랍니다.
본 문서의 정보는 다음의 제품에 적용됩니다.
• | Microsoft Visual C++ .NET 2002 Standard Edition |
• | Microsoft Visual C++ 5.0 Standard Edition |
• | Microsoft Visual C++ 6.0 서비스 팩 5 |
키워드: |
kb32bitonly kbcompiler kberrmsg kbprb KB305980 |
'Development > 삽질의 추억' 카테고리의 다른 글
Run-Time Check Failure #2 (0) | 2011.08.13 |
---|---|
Run-Time Check Failure #0 (0) | 2011.08.13 |
ODBC를 이용하여 CRecordset 을 사용 중 - 올바른 서버 이름이 지정되었는지 확인하십시오. - 에러 상황 (0) | 2011.08.13 |
nafxcw.lib(afxmem.obj) : error LNK2005 (0) | 2011.08.13 |
MS-SQL 서비스 시작 시 1069 로그온에러 (0) | 2011.08.13 |
