다음을 통해 공유


컴파일러 오류 C2813

업데이트: 2007년 11월

오류 메시지

/MP를 지정하면 #import를 사용할 수 없습니다.
#import is not supported with /MP

C2813은 컴파일러 명령에 /MP 컴파일러 옵션을 지정하고 컴파일할 파일을 두 개 이상 지정했지만 하나 이상의 파일에 #import 전처리기 지시문이 들어 있는 경우에 발생합니다. #import 지시문은 지정된 형식 라이브러리의 형식에서 C++ 클래스를 생성한 다음 두 개의 헤더 파일에 해당 클래스를 씁니다. 여러 컴파일 단위에서 동일한 형식 라이브러리를 가져오는 경우 각 단위에서 동시에 동일한 헤더 파일을 쓰려고 하면 충돌이 발생하므로 #import 지시문이 지원되지 않습니다.

이 컴파일러 오류와 /MP 컴파일러 옵션은 Visual Studio 2008에 새로 추가된 것입니다.

예제

다음 샘플에서는 C2813 오류가 발생하는 경우를 보여 줍니다. "compile with:" 주석의 명령줄에서는 /MP/c 컴파일러 옵션을 사용하여 여러 파일을 컴파일하도록 컴파일러에 지시합니다. 최소한 하나의 파일에 #import 지시문이 들어 있습니다. 이 예제를 테스트하기 위해 동일한 파일을 두 번 사용합니다.

// C2813.cpp
// compile with: /MP /c C2813.cpp C2813.cpp
#import "C:\windows\system32\stdole2.tlb"   // C2813
int main() 
{
}