Error C1854 : 객체 파일에서 선입 된 헤더를 작성하는 동안 형성된 정보를 덮어 쓸 수 없습니다.

StackOverflow https://stackoverflow.com/questions/944429

문제

foo.cpp(33918) : fatal error C1854: cannot overwrite information formed 
during creation of the precompiled header in object file: 'c:\somepath\foo.obj'

이것에 대해 MSDN에 컨설팅하는 것은 다음과 같은 정보를 제공합니다.

동일한 파일에 대한 /yc (precompiled header 만들기) 옵션을 지정한 후 /yu (사전 컴파일 된 헤더 사용) 옵션을 지정했습니다. 특정 선언 (예 : __declspec dllexport를 포함한 선언) 이이 사실을 유효하게 만듭니다.

이 경우 DLLEXPORT 및 사전 컴파일 헤더를 사용하고 있습니다. 전에 이것을 만나고 해결 방법을 알고 있습니까? 이 문제에 대해 약간의 빛을 비추는 모든 입력은 대단히 감사합니다.

감사

도움이 되었습니까?

해결책

여기에서 답을 찾을 수 있다고 생각합니다. http://social.msdn.microsoft.com/forums/en-us/vclanguage/thread/B3AAA10FA-141B-4A03-934C-7E463F92B2A5/

기본적으로 stdafx.cpp 파일을 "사전 컴파일 된 헤더 만들기"로 설정하고 다른 모든 .CPP 파일을 "사전 컴파일 된 헤더 사용"으로 설정해야합니다.

다른 팁

나도이 문제가 있었다.

프리 컴파일러 헤더 출력 파일이 올바른 위치로 설정되어 있는지 확인하십시오. 광산은 실제로 올바른 위치에 출력되었지만 경로에 약간의 아티팩트가 있었기 때문에 읽는 데 문제가있었습니다.

내 솔루션은 .EXE 프로젝트뿐만 아니라 모든 DLL 프로젝트에서도 모든 미리 컴파일 된 헤더 설정을 신중하게 다시 확인하고 모든 헤더를 재현하는 것이 었습니다. 그 후 .exe 컴파일에서 오류가 사라졌습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top