이 문제를 해결하는 방법을 아는 사람이 누구인지 궁금합니다. 나는 특정 .cpp 파일을 가지고 있는데, 어떤 이유로 (공백 문자를 추가하는 것조차도) 수정하고 프로젝트를 빌드 할 때 다른 관련이없는 .cpp 파일 (10-20 개)의 호스트를 재 컴파일합니다.Visual Studio 2012에서 관련없는 파일을 다시 컴파일하도록하는 .cpp 파일 변경
그 파일은 다른 파일에 #include하지 않았습니다. (필자는 #cpp 파일을 직접 포함하지 않고 .h) 만 포함하고 생각할 수있는 다른 종속성이 없습니다. Visual Studio를 좋아합니다. 종속성 트리를 오해하거나, 빌드 프로세스와 관련하여 부패한 내부 상태가 있습니다. .sdf, .suo, ipch /, .user 및 object 파일 디렉토리를 삭제하려고 시도했지만 잠시 후에 문제가 다시 나타납니다.
다른 .cpp 파일을 수정하면 해당 파일 만 예상대로 다시 컴파일됩니다.
MSBuild에 대해 조금 알고 있지만 .vxproj 파일에 아무 것도 분명히 표시되지 않습니다. 문제의 .cpp 파일은 ClCompile 항목 그룹에만 한 번 나타나며 해당 헤더는 ClInclude 그룹에만 한 번 나타납니다.
이 벨소리가 울리거나 누군가가이 문제를 추적하고 문제를 해결할 수있는 방법에 대한 조언이 있으면 크게 감사하겠습니다.
업데이트 : msbuild /verbosity:Detailed
를 실행하지만 불행히도 관련없는 파일을 컴파일지고있는 이유에 대한 설명이 그냥 불투명
:이 사람에 대한 이해가 알려 만드는 경우
Using "CL" task from assembly "Microsoft.Build.CppTasks.Common.v110, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a".
Task "CL"
Read Tracking Logs:
Debug\cl.read.1.tlog
Output details (109 of them) were not logged for performance reasons.
{UnrelatedFile1.cpp} will be compiled as {PROBLEM_FILE.CPP} was modified at 4/30/2013 3:28:02 PM.
{UnrelatedFile2.cpp} will be compiled as {PROBLEM_FILE.CPP} was modified at 4/30/2013 3:28:02 PM.
(etc...)
- 수 CL 업무의 내부 작동에 대한 많은 정보를 찾거나 이러한 비 관련 CPP 파일 간의 종속성을 확인하는 이유는 무엇입니까?
업데이트하여 편집에 대한 내 대답은 그것이 도움이되기를 바랍니다! – paulm
고마움 - 아직 시도 할 기회가 없었으나 얼마전에 포기했습니다. 그러나 곧 다른 시험을 보게됩니다. 헤더 체인이라고 생각하지 마십시오. 문제의 파일 이름에 대해 솔루션의 모든 파일 (바이너리조차도)을 검색했습니다. 이미 알려지지 않은 참조가 없습니다. – QuadrupleA
어디에 포함되어 있는지에 따라 미리 컴파일 된 헤더 문제 일 수도 있습니다. – paulm