릴리스 모드와 디버그 빌드 모드의 차이점을 이해한다고 생각합니다. 주요 차이점은 디버그 모드에서 생성 된 실행 파일이 최적화되지 않아 디버깅 기호가 포함되어 있기 때문입니다.빌드 모드 : RelWithDebInfo
WinMerge에 대한 외부 종속성 중 하나 인 PCRE를 빌드하면서 이전에 보지 못했던 빌드 모드 인 RelWithDebInfo를 발견했습니다.
디버그와 RelWithDebInfo의 차이점은 여기에 있습니다 : http://www.cmake.org/pipermail/cmake/2001-October/002479.html. 발췌 : "RelwithDebInfo는 릴리스 모드와 매우 유사하며 완전히 최적화 된 코드를 생성하지만 프로그램 데이터베이스도 빌드하고 디버거 라인 정보를 삽입하여 디버거가 언제 어디서나 코드를 추측 할 수있는 좋은 기회를 제공합니다. "
이것은 실제로 좋은 생각처럼 들리지만 설정하는 방법이 반드시 명확하지는 않습니다. 이 링크는 VC++에서 이것을 활성화하는 방법을 설명합니다 : http://www.cygnus-software.com/papers/release_debugging.html
누락되었거나 모든 릴리스 코드를 RelWithDebInfo로 컴파일하는 것이 적절하지 않습니까?
고객에게 디버그 정보를 제공 할 필요는 없습니다 (바이너리에 포함 된 플랫폼에 대해 언급 한 경우를 제외하고). –
컴파일러가 디버거 정보 _besides_ (VC와 같은) 실행 파일을 넣으면이 이슈. – sbi
크로스 플랫폼 개발을 수행합니다. Visual C++ 사람들이 다른 플랫폼에서 대상의 결과를 이해하기를 바랍니다. 필자는 서면 문서가 불완전하다는 이유로 cmake 사용자가 cmake 메일 링리스트를 사용하는 것을 권장합니다. – Juan