2012-01-19 1 views
19

C에서 내 프로젝트에 미리 컴파일 된 헤더를 사용하고 있지만 프로젝트에 .CPP 파일을 통합하려고합니다.혼합 된 C 및 C++로 미리 컴파일 된 헤더

다음은 오류입니다 :

Error 1 fatal error C1853: 'Debug\MuffinFactory.pch' precompiled header 
file is from a previous version of the compiler, or the precompiled header is C++ 
and you are using it from C (or vice versa)  
c:\users\blake\desktop\projects\muffinfactory\source\main.cpp 1 

우리는 우리의 프로젝트에 컴파일 된 하나의 .CPP이 필요하지만, 우리가 정말 컴파일 (있는 Windows.h 등을) 시간을 절약하기 위해 미리 컴파일 된 헤더가 필요합니다.

어떻게해야 합니까이 프로젝트를 구성해야합니까?

+0

C를 C++로 컴파일 할 수 있습니까? –

+1

이와 같이 결합하려고 시도한 마지막 문제는 아닐 것입니다. 일반적인 문제는 몇 가지 .C를 C++ 프로젝트에 삽입하는 것이지 다른 방법으로는 삽입하지 않는 것입니다. –

+0

stdafx.h for Novices - http://www.viva64.com/en/b/0265/ –

답변

19

그래서 단일 파일에 대해 미리 컴파일 된 헤더를 사용하지 마십시오!

.cpp 파일이므로 별도의 컴파일 옵션이 있습니다.

+0

당신이 @ Persson이라고 대답 한 것을 설명 해주십시오. @ Persson –

+0

@nafeeur 이것은 오래전 일이었습니다.하지만 C와 C++은 다른 컴파일러 옵션을 요구할 것이라고 생각합니다. 따라서 미리 컴파일 된 헤더는 두 세트 모두에 사용할 수 없었습니다. 컴파일러가 그것을 받아 들였다). 따라서 단일 CPP 파일을 별도로 컴파일하고 프리 컴파일 된 헤더를 사용하지 마십시오. –

5

프로젝트에 두 개의 미리 컴파일 된 헤더를 만들 수 있습니다. 미리 컴파일 된 헤더를 사용할지 아니면 미리 컴파일 된 헤더를 생성 할지를 결정하는 속성이 각 소스 파일에 있습니다. 두 개의 다른 소스를 설정하여 헤더를 생성 해보십시오.

+0

훌륭한 옵션! 그래도 .vcproj를 약간 만만치하면됩니다. –

+10

추가 정보 : 솔루션 탐색기에서 "미리 컴파일 된 헤더"를 사용하지 않으려면 .c 파일을 선택하십시오. -> 오른쪽 클릭 -> 미리 컴파일 된 헤더 옵션에서 미리 컴파일 된 헤더를 사용하지 않음을 선택하십시오. – Zuuum

+0

감사합니다. Zuuum은 c & VS에서 C++. – Gob00st

1

별도의 C++ 미리 컴파일 된 헤더 파일 (다른 하나의 복사본 인 MuffinFactoryCpp.h)을 만들어보십시오. "미리 컴파일 된 헤더"에서 프로젝트 설정을보고이 새 헤더 파일을 C++ 소스 파일의 미리 컴파일 된 헤더로 사용하십시오.

0

여기 오류를보고이 스레드를 찾았습니다. 그러나 시행 착오 끝에 최근 문제가 모든 파일을 저장하지 못했다는 것을 알게되었습니다. Visual Studio는 함께 첨부 된 파일의 저장 날짜에 대해 다소 까다로운 것 같습니다.

나는 모든 소스 파일에서 Ctrl + S를 눌러서 문제를 해결했습니다.