2017-12-05 3 views
0

컴파일러에는 /Fd 옵션이 있고 링커에는 /PDB 옵션이 있습니다. /PDB의 기본값은 $(OutDir)$(TargetName).pdb이지만 컴파일러 옵션 /Fd의 기본값은 $(IntDir)vc$(PlatformToolsetVersion).pdb입니다. 따라서 빌드하는 동안 두 개의 파일이 생성됩니다. 설명서에 따르면 프로그램 데이터베이스 파일과 둘 다 디버그 정보와 관련이 있습니다. 두 파일의 차이점은 무엇입니까?/PDB와/Fd 옵션의 차이점

답변

1

VCxxx.pdb 파일은 주로 정적 라이브러리 프로젝트에 필요합니다. 라이브러리에 대한 디버그 정보를 저장합니다. 링커는 디버거가 사용하는 최종 PDB 파일을 생성 할 때이를 필요로하며 최종 이미지에 링크 된 실제 함수에 대한 관련 디버그 정보 레코드를 선택합니다.

다른 것들도 마찬가지입니다. 어둡고, 의존성 정보를 제공한다고 생각합니다. VS2015 Update 1부터 사용할 수있는/Debug : FASTLINK 옵션으로 더 복잡해졌습니다. 이제는 런타임에 디버그 정보도 제공합니다. 디버거가 VCxxx.pdb 파일을 파내는 데 더 많은 시간을 할애하여 대규모 프로젝트의 경우 비용이 많이 드는 완전한 PDB를 생성하려는 노력이 필요합니다. 거의 항상 승리./Fd를 무시할 좋은 이유를 찾지 못했지만 항상 기본 빌드 옵션을 선호했습니다.