[우분투] 동적 라이브러리 로딩 우선 순위

1. 로딩 경로

  • /lib 및 /usr/lib와 같은 기본 라이브러리 로드 경로
  • ldconfig는 로드 경로를 지정합니다. 구성 파일 /etc/ld.so.conf에서 동적 라이브러리 검색 경로를 지정합니다.
  • 지정된 로딩 경로 컴파일: gcc 매개변수 "-Wl,-rpath,"를 통해 대상 코드를 컴파일할 때 프로그램의 동적 라이브러리 검색 경로를 지정합니다.
  • 환경 변수는 로딩 경로 지정: 환경 변수 LD_LIBRARY_PATH를 통해 동적 라이브러리 검색 경로 지정

2. 로딩 순서

높음에서 낮음으로 동적 라이브러리의 검색 우선순위 로드:

  • 지정된 로딩 경로 컴파일
  • 환경 변수는 로드 경로(LD_LIBRARY_PATH)를 지정합니다.
  • ldconfig는 로딩 경로를 지정합니다.
  • 기본 라이브러리 로드 경로

설명하다:

"/usr/local/lib" 및 "/usr/local/lib/x86_64-linux-gnu, /lib/x86_64-linux-gnu 및 /usr/lib/x86_64-linux-gnu는 모두 ldconfig 지정 로딩 경로입니다. 위치는 각각 /etc/ld.so.conf.d/libc.conf 및 /etc/ld.so.conf.d/x86_64-linux-gnu.conf에 있습니다.

/etc/ld.so.conf 파일의 내용을 확인합니다. /etc/ld.so.conf.d/*.conf를 포함하므로 실제로는 /etc/ld.so.conf의 각 구성 파일입니다. .d 디렉토리, 내 환경은 다음과 같습니다.

libc.conf
libnginx.conf
x86_64-linux-gnu.conf

위의 환경에 따라 더 자세한 라이브러리 경로 우선 순위는 다음과 같습니다.

  • 지정된 로딩 경로 컴파일
  • 환경 변수는 로드 경로(LD_LIBRARY_PATH)를 지정합니다.
  • ldconfig는 로드 경로를 지정합니다: /usr/local/lib
  • ldconfig는 로딩 경로를 지정합니다: libnginx.conf의 내용
  • ldconfig는 로드 경로를 지정합니다: /usr/local/lib/x86_64-linux-gnu, /lib/x86_64-linux-gnu 및 /usr/lib/x86_64-linux-gnu
  • 기본 라이브러리 로드 경로: /lib 및 /usr/lib

추천

출처blog.csdn.net/weixin_35804181/article/details/131652982