Visual Studio 2008을 사용하고 있습니다.VC++ 프로젝트가 최신이 아닙니다.
두 개의 프로젝트가있는 솔루션이 있습니다. 하나는 내 "프로덕션 코드"인 DLL을 빌드합니다. 다른 하나는 내 단위 테스트 스위트 인 콘솔 앱 exe를 빌드합니다.
내 단위 테스트 프로젝트의 경우 DLL에서 소스 모듈의 이름을 링커 입력으로 나열했습니다. 즉, DLL 프로젝트에 DLLMain.cpp가 있고 DLL 프로젝트에 링커 입력 "DLLMain"이 있습니다. 이것은 EXE가 DLL 프로젝트에 의해 생성 된 obj 파일과 링크 할 수있게하여 단위 테스트만을위한 모듈의 재 컴파일을 방지합니다. (많은 빌드 시간을 절약 할 수 있습니다.)
문제는 exe가 obj보다 늦게 생성되고 다른 프로젝트에 의해 생성되므로 timestamp가 obj보다 항상 새로운 것입니다. 그래서 당신이 실행하거나 디버깅하려고하면, 그것은 항상 EXE 프로젝트가 오래되어 다시 빌드해야한다고 말합니다.
타임 스탬프를 무시하도록 exe 프로젝트를 구성 할 수있는 방법이 있습니까? 아니면 여기에 보이지 않는 다른, 아마도 좀 더 일반적인 해결책이 있습니까?
"문제는 exe가 obj보다 늦게 생성되고 다른 프로젝트에 의해 생성되므로 해당 타임 스탬프는 항상 ob보다 새로운 j의 ... "- 결론은 바로 거기에 있다고 생각하지 않는다. objs 파일은 .exe가 제대로 빌드 된 경우 .exe/.dll보다 오래된 것입니다. exe보다 새로운 objs는 다시 연결해야 함을 나타냅니다. obj보다 새로운 소스 파일이 다시 컴파일 할 필요가 있음을 나타냅니다. – Ruddy