동일한 SONAME 및 인터페이스를 가진 2 개의 라이브러리 (A와 B)가 있다고 가정 해보십시오. 개발자는 컴파일 할 때 A와 연결되지만 사용자는 실행 전에 $ LD_LIBRARY_PATH를 설정합니다. 모든 것은 정상이지만 사용자가 개발자가 원하는 것과 다른 라이브러리를 사용했다는 것을 모릅니다.LD_LIBRARY_PATH가 연결과 실행 사이에서 변경되었습니다.
나는 편집자이며, 단지 해킹이 아니므로 피해야한다. 컴파일러에 "-Wl, -rpath"를 제공하면 런타임 연결 경로의 우선 순위가 결정되지만 소프트웨어 개발에서 가장 "표준"인 전략이 무엇인지 확실하지 않습니다.