0

나는 PDB 파일을 생성하는 디버그 빌드를 위해 "편집 및 계속을위한 프로그램 데이터베이스 (/ ZI)"로 빌드 된 PDB 파일을 사용합니다. 디버깅 할 때 프로젝트에서 사용중인 라이브러리의 소스로 이동할 수 있기를 원합니다. 프로젝트. MSDN에 따라 PDB 파일과 함께 DLL을 사용할 때 컴파일러는 DLL (또는 EXE) 파일이있는 폴더의 PDB 파일을 찾습니다. 하지만 정적 LIB 공유하는 구성 요소가 있습니다. 필자는 보통 컴파일러를 플랫폼 (기본값 인 후자)이 아닌 프로젝트로 명명 된 PDB 파일을 생성하도록 설정하여 파일 충돌없이 파일을 옮길 수 있습니다. 하지만 정적 LIB에서이 PDB 파일을 어디에 넣어야합니까? LIB와 동일한 폴더에 넣을 수 있습니까? \ bin \ include \ lib \ data와 같은 폴더 구조를 가지고 있기 때문에 빌드 된 LIB를 실행 파일과 다른 폴더에 보관합니다.정적 라이브러리에서 "편집하고 계속"pdb 파일을 넣을 위치는 어디입니까?

+0

그것이 작동하는 방식은 아닙니다. 정적 lib 용 pdb는 링커에서 실행 파일 용 pdb를 작성하는 데 사용됩니다. 더 이상 필요하지 않습니다. 당신이 해결하려고하는 문제가 무엇인지는 매우 분명하지 않습니다. –

+0

저는 제가 구축 한 라이브러리 모음을 가지고 있습니다. 그 중 일부는 정적이고 일부는 공유 DLL입니다. 주어진 프로젝트에서 실행 파일을 빌드 할 때, 컴파일러는 DLL과 정적 LIB 모두에 대한 PDB 파일을 어디에서 찾을 지 알아야합니다. 모든 프로젝트 트렁크 DLL과 실행 파일을/bin 폴더에 보관하고 컴파일러는 DLL에 대한 PDB를 찾을 수 있습니다. 모든 가져 오기 LIB와 모든 정적 LIB를/libs 폴더에 보관합니다.하지만 정적 LIB의 PDB 파일을 어디에 넣어야 컴파일러가 찾을 수 있습니까? –

+0

그건 전혀 이해가되지 않는 부분입니다. 컴파일러는 pdbs를 사용하지 않고 생성합니다. 링커는 이들을 결합하여 디버거가 사용하는 최종 객체를 만듭니다. 아직 실제로 무엇이 잘못되었는지 설명하지 않았습니다. 디버깅 할 때 오류 메시지 또는 특정 사고를 게시하면 실제로는없는 문제에 대해 초조해하는 소리가납니다. –

답변

0

PDB를 연결된 LIB와 같은 위치에 복사해야합니다. LIB에서 DLL 또는 EXE를 생성하기 위해 링커를 실행하면 LIB PDB를 사용하여 DLL 또는 EXE에 대한 PDB를 생성합니다.

빌드 후 이벤트를 사용하여 각 빌드 후에 LIB/PDB를 복사하는 명령 줄 작업을 추가 할 수 있습니다.