바이너리 형태로만 배포되는 공유 라이브러리 집합 (Intel MKL)이 있습니다. 최상위 "런타임"도서관, libmkl_rt.so
내 실행 파일에 대한 링크와는 ldd
로 볼 수 있습니다 : 그러나dlopen()에서 사용하지 않은 기호를 무시합니다. .so
...
libmkl_rt.so => /var/task/lib/libmkl_rt.so (0x00007f8049a1f000)
...
, 다른 사람과 같은 libmkl_avx.so
, 실행 던졌습니다 내가 dlopen()
동적으로로드되는 가정 라이브러리가 없으면 찾을 수 없지만 ldd
으로 표시되지 않는다는 오류가 표시됩니다.
이 라이브러리는 크기가 크고 (> 100MB) 내 컨테이너에서이 라이브러리 만 사용 가능합니다. 실행 파일은이 라이브러리의 각 함수를 호출하지 않는다고 가정하므로 함수를 호출하지 않는지 먼저 결정한 다음 해당 함수 만 유지하면서 슬림화하고 싶습니다.
내가 어떻게 할 수 동적으로 공유로드 된 라이브러리에있는 기호는 실제로
- 을 사용하는 결정하십시오?
- 해당 기호 만 라이브러리의 "슬림"복사본으로 추출합니까?
어떤 도구가 있습니까?