여러 가지 다양한 C++ 실행 파일과 서로 다른 여러 가지 종속성을 가진 라이브러리로 구성된 제품을 작업하고 있습니다. GCC와 -fsanitize-address
을 사용하여이 모든 것을 구축하고 있습니다. 내가 이해할 수있는 것은, 주소 소독자를 라이브러리와 함께 사용하려면 공유 객체 (GCC의 기본 옵션)로 빌드해야합니다. 이 때문에 최상의 옵션은 실행 파일에 대해 주소 소실 시간을 -static-libasan
으로 정적으로 작성하고 라이브러리에 대해 dinamically 빌드하는 것이라고 생각했습니다. 그러나, 나는 C++ 실행 파일 중 하나를 구축 할 때 내가 링크 오류를 얻을 때를 수행여러 C++ 바이너리에 대해 주소 살균기를 활성화하는 방법
==10823==Your application is linked against incompatible ASan runtimes
이 날 주소의 정적 및 동적 버전 살균제 GCC와 혼합 될 수 있다고 생각합니다,하고 나는 오른쪽? GitHub 위생 처리 페이지에서 이에 대한 정보를 찾을 수 없었습니다.
이것은 ASAN과 관련이 없으므로 방금 라이브러리로 설명한 내용을 수행하지 마십시오. 공유 버전 (라이브러리와 실행 파일 또는 나중에 실행 파일) 만 사용하거나 정적 버전 (실행 파일에만 사용) 만 사용하십시오. –