Readelf 보고서에서 어떤 기능 (또는 다른 기호)이 libutil.so.1는 ssh를 유틸리티에 의해 필요, 사용되지 않는 :readelf 보고서는 이렇게 파일하지만
말한다 나노$readelf -s /usr/bin/ssh | grep libutil
0x0000000000000001 (NEEDED) Shared library: [libutil.so.1]
으로, libutil을. so.1 만 6 외부 기호가 있습니다
$nm -D /lib64/libutil.so.1 | grep "T "
000000331e0015a0 T forkpty
000000331e000fa0 T login
000000331e0010f0 T login_tty
000000331e001190 T logout
000000331e0012e0 T logwtmp
000000331e0013d0 T openpty
그러나 SSH에서 참조되지 이러한 기호 :
$nm -D /usr/bin/ssh | grep forkpty
$nm -D /usr/bin/ssh | grep login
$nm -D /usr/bin/ssh | grep login_tty
$nm -D /usr/bin/ssh | grep logout
$nm -D /usr/bin/ssh | grep logwtmp
$nm -D /usr/bin/ssh | grep openpty
(grep not showing any matches)
을 무슨 일이야? 라이브러리가 NEEDED로 참조 된 이유는 무엇입니까? 이것은 유일한 예가 아닙니다. 다른 실행 파일의 종속성을 분석하는 동안 많은 "빈"참조를 만났습니다.
이 앱을 제작 한 배포판은 무엇입니까? – yugr
배포판은 Red Hat 6.6 이었지만 중요하지 않다고 생각합니다. – spacistor
현대 배포판에서는'--as-needed'가 기본적으로 활성화되어 있으므로 문제를 해결하기 위해'--no-as-needed'를 사용해야합니다. 레드햇 6은 (그냥 확인해도) 제정신 인 것 같습니다. – yugr