ARM 개발판에서 동적 라이브러리 또는 실행 가능한 프로그램의 의존 관계 보기

5581 단어
ARM32 개발판의 경우/lib 아래에 ld-linux-armhf라는 이름이 있습니다.so.3의 실행 가능한 프로그램(ARM64 개발판에는/lib/ld-linux-aarch64.so.1)이 있습니다. 이 프로그램은 실행 가능한 프로그램과 의존하는 동적 라이브러리를 불러옵니다.
# /lib/ld-linux-armhf.so.3 
Usage: ld.so [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...]
You have invoked `ld.so', the helper program for shared library executables.
This program usually lives in the file `/lib/ld.so', and special directives
in executable files using ELF shared libraries tell the system's program
loader to load the helper program from this file.  This helper program loads
the shared libraries needed by the program executable, prepares the program
to run, and runs it.  You may invoke this helper program directly from the
command line to load and run an ELF executable file; this is like executing
that file itself, but always uses this helper program from the file you
specified, instead of the helper program file specified in the executable
file you run.  This is mostly of use for maintainers to test new versions
of this helper program; chances are you did not intend to run this program.

  --list                list all dependencies and how they are resolved
  --verify              verify that given object really is a dynamically linked
                        object we can handle
  --inhibit-cache       Do not use /etc/ld.so.cache
  --library-path PATH   use given PATH instead of content of the environment
                        variable LD_LIBRARY_PATH
  --inhibit-rpath LIST  ignore RUNPATH and RPATH information in object names
                        in LIST
  --audit LIST          use objects named in LIST as auditors

 
그런 다음 --list 매개 변수를 사용하여 종속 라이브러리를 볼 수 있습니다.
# /lib/ld-linux-armhf.so.3 --list /usr/bin/stressapptest 
        linux-vdso.so.1 (0xbeeef000)
        librt.so.1 => /lib/librt.so.1 (0xb6ece000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb6eaa000)
        libstdc++.so.6 => /lib/libstdc++.so.6 (0xb6d9f000)
        libm.so.6 => /lib/libm.so.6 (0xb6d23000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb6cfa000)
        libc.so.6 => /lib/libc.so.6 (0xb6c0d000)
        /lib/ld-linux-armhf.so.3 (0xb6ee4000)

 
또한 readelf를 사용하여 라이브러리의 종속성을 볼 수도 있습니다.
readelf -a  | grep NEEDED

 
끝나다

좋은 웹페이지 즐겨찾기