다른 사람들의 이익을 위해 내가 한 일을 포함 시켰지만.
Visual Studio (제 경우 2010)가 LNK4204 경고를 무시하도록 할 수 없기 때문에 제 접근 방식은 원하는대로 pdb 파일을 제공하는 것이 었습니다. 제 경우에는 오픈 소스 라이브러리를 사용하고 있었기 때문에 이미 pdb 파일을 빌드하는 코드가 있습니다.
그러나 기본값은 모든 PDF 파일의 이름을 같은 이름으로 지정하는 것입니다. 제 경우에는 vc100.pdb입니다. 각각의 모든 .lib에 대해 .pdb가 필요하기 때문에 이는 특히 약 20 개의 정적 .lib 파일을 생성하는 ImageMagik과 같은 것을 사용하는 경우 문제가됩니다. 하나의 디렉토리 (응용 프로그램의 링커가 라이브러리에서 링크하기 위해 참조하는 파일)에 20 개의 lib 파일이있을 수 없으며 20 개의 모든 .pdb 파일이 같은 것을 호출 할 수 없습니다.
내 솔루션은 정적 라이브러리 파일을 다시 빌드하고 PROJECT와 관련하여 .pdb 파일의 이름을 지정하도록 VS2010을 구성하는 것입니다. 이런 식으로 각 .lib는 비슷한 이름의 .pdb를 가져 오며 모든 LIB와 PDB를 프로젝트에서 사용할 수 있도록 하나의 디렉토리에 넣을 수 있습니다.
그래서 "디버그"구성을 위해 다음과 같이 편집했습니다.
속성-> 구성 속성-> C / C ++-> 출력 파일-> 프로그램 데이터베이스 파일 이름 에서
$ (IntDir) vc $ (PlatformToolsetVersion) .pdb
다음 값이어야합니다.
$ (OutDir) vc $ (PlatformToolsetVersion) D $ (프로젝트 이름) .pdb
이제 중간 디렉토리가 아닌 .pdb 파일이 출력 디렉토리에 기록됩니다. 여기서 .lib 파일도 기록되며 가장 중요한 것은 D + 프로젝트 이름 접미사로 이름이 지정된다는 것입니다 . 이것은 각 도서관 프로젝트를 의미합니다 는 프로젝트 .lib 및 프로젝트 특정 .pdb를 생성합니다.
이제 모든 릴리스 .lib 파일, 디버그 .lib 파일 및 디버그 .pdb 파일을 개발 시스템의 한 위치에 복사 할 수 있으며 디버그 모드에서 타사 라이브러리를 사용하는 프로젝트에는 pdb가 있습니다. 디버그 모드에서 필요한 파일.