내가 아래에 오류가 표시 nm의 사용하여 볼 수 있습니다 :이 기능 'GetList
이'실행 파일에 링크 된 정적 라이브러리 liblist.a
에 정의되어프로그램을로드 할 때 심볼 검색 오류가 발생합니다. 기호는 정적 라이브러리에 정의되어 있으며 프로그램 실행시
/usr/bin/getinfo: symbol lookup error: /usr/pkl/libinfo.so: undefined symbol: GetList
을 /usr/bin/getinfo
그리고 gcc로 컴파일됩니다. 나는 실행 가능한 getinfo가 'nm'명령어를 실행할 때 정의 된 심볼을 가지고 있음을 볼 수있다. 여기에 나노 명령 출력입니다 :
[email protected] $ nm /usr/bin/getinfo | grep GetList
080a3d89 T GetList
나는 또한 readelf 명령을 사용하여 확인하고 여기에 출력의 : 공유 라이브러리 libinfo.so
[email protected] $ readelf -a /usr/bin/getinfo | grep GetList
1080: 080a3d89 1777 FUNC GLOBAL DEFAULT 15 GetList
liblist.a 정적 라이브러리에 정의 된 함수 GetList를 호출 . libinfo.so
과 liblist.a
은 모두 실행 파일 /usr/bin/getinfo
에 종속되어 있습니다. liblist.a
은 이 아니며은 (는) libinfo.so
에 추가되었습니다. 도 작성했으며 objdump -S /usr/bin/getinfo | grep GetList
도이 함수의 어셈블리 코드를 확인할 수 있습니다. 그러나 프로그램을 실행할 때 기호 조회 오류로 인해 충돌합니다. 이것은 공유 라이브러리 문제가 아니며 해결할 수 없습니다. 도와주세요.