[전재]/Z7,/Zi,/ZI(디버그 정보 형식)
/Z{7|i|I}
다음 표에서는 이러한 옵션을 설명합니다.
없음
디버그 정보가 발생하지 않기 때문에 컴파일링이 비교적 빠르다.
/Z7
디버거에 사용할 완전한 기호 디버깅 정보를 생성합니다.obj 파일.기호 디버깅 정보에는 변수의 이름과 유형, 함수와 줄 번호가 포함됩니다.아무것도 생성되지 않습니다.pdb 파일.
제3자 라이브러리의 발표자에 대해 생성하지 않습니다.pdb 파일은 장점이다.단, 링크와 디버깅 기간에 미리 컴파일된 헤더에 사용됩니다.obj 파일이 필요합니다.만약.pch 대상 파일에 형식 정보만 있으면/Yl (디버그 라이브러리에 PCH 인용 삽입) 을 사용하여 컴파일해야 합니다.
/Zi
디버거에 사용되는 유형 정보 및 기호 디버그 정보가 포함된 프로그램 데이터베이스(PDB)를 생성합니다.기호 디버깅 정보에는 변수의 이름과 유형, 함수와 줄 번호가 포함됩니다.
/Zi는 최적화에 영향을 주지 않습니다.그러나,/Zi는 확실히/debug를 암시했다.자세한 내용은/DEBUG(디버그 정보 생성)를 참조하십시오.
유형 정보는.pdb 파일이 아니라.obj 파일에서
/Gm(최소 재생성 사용)과/Zi를 결합하여 사용할 수 있지만/Z7로 컴파일할 때는/Gm를 사용할 수 없습니다.
/Zi 및/clr를 사용하여 컴파일할 때 Debuggable Attribute 특성은 프로그램 세트 데이터에 포함되지 않습니다.이 기능을 사용하려면 원본 코드에 지정해야 합니다.이 기능은 응용 프로그램의 운행 시 성능에 영향을 줄 수 있다.Debuggable 특성이 성능에 미치는 영향과 성능의 영향을 줄이는 방법에 대한 더 많은 정보는 이미지를 디버깅하기 쉽게 하는 것을 참고하십시오.
/ZI
"편집 및 계속"기능을 지원하는 형식으로 위에서 설명한 프로그램 데이터베이스를 생성합니다.'편집 및 계속' 디버깅을 사용하려면 이 옵션을 사용해야 합니다.대부분의 최적화는 편집 및 계속과 호환되지 않으므로/ZI를 사용하면 코드의 모든 #pragma optimize 문이 비활성화됩니다.
/ZI는 컴파일에서/Gy(함수 레벨 링크 활성화)와/FC(진단된 소스 파일의 전체 경로)를 사용합니다.
/ZI는/clr와 호환되지 않습니다.
/ZI는 x86 컴파일러에만 사용할 수 있습니다.이 컴파일러 옵션은 x64 또는 Itanium 프로세서 시리즈 (IPF) 의 컴파일러에 사용할 수 없습니다.
컴파일러는 프로그램 데이터베이스를 항목으로 명명합니다.pdb.항목이 없는 파일을 컴파일하면 컴파일러는 VCX0이라는 이름을 생성합니다.pdb. 의 데이터베이스입니다. 여기서 x는 사용 중인 Visual C++의 주 버전입니다.컴파일러는 이 옵션을 사용하여 만든 각 PDB의 이름을 포함합니다.obj 파일에서 디버거가 기호와 줄 번호 정보의 위치를 알 수 있도록 합니다.이 옵션을 사용하는 경우.obj 파일은 디버깅 정보가 저장되어 있기 때문에 비교적 작을 것입니다.pdb 파일에서.obj 파일에서
이 옵션을 사용하여 컴파일된 객체에서 라이브러리를 작성하는 경우 라이브러리를 프로그램에 링크할 때 연관됩니다.pdb 파일을 사용할 수 있어야 합니다.따라서 이 라이브러리를 게시하려면 PDB를 게시해야 합니다.
사용하지 않으면.pdb 파일은 디버그 정보를 포함하는 라이브러리를 만듭니다. 컴파일러의 C 7.0 호환 (/Z7) 옵션을 선택해야 합니다.사전 컴파일된 헤더 옵션을 사용하는 경우 사전 컴파일된 헤더와 기타 소스 코드에 대한 디버그 정보는 PDB에 저장됩니다.프로그램 데이터베이스 옵션을 지정하면/Yd 옵션이 무시됩니다.
Visual Studio 개발 환경에서 이 컴파일러 옵션 설정