실행 가능한 이진 파일에 링크 된 정적 라이브러리 (my_static_lib
)가 있습니다. 내 기호 중 일부는 내 바이너리에서 사용되지만 전부는 아닙니다.특정 기호를 이진 파일로 유지하는 방법은 무엇입니까?
동적으로로드 된 두 번째 라이브러리 (my_shared_lib
)는 이진의 심볼 주입을 통해 my_static_lib에서 일부 심볼을 수신하려고합니다. 그러나 이러한 기호는 my_binary에서 사용되지 않으므로 최종 bin 파일에서 제거됩니다.
따라서 런타임에 my_shared_lib
은 __my_stripped_symbols__
을 찾을 수 없다는 메시지와 함께 충돌합니다.
링커가 계속 __my_stripped_symbols__
을 유지하도록 할 방법이 있습니까? 나는/나는 그것이 실행의 다소 복잡한 그룹의 다른 부분에 이상한 충돌을 생성하기 때문에 my_shared_lib
와 my_static_lib
를 연결하지 않으려는 깨끗하게 Makefile.am (autotools를) 작성할 수 있습니다 뭔가
(-binary file makefile)
-L$(top_builddir)/static_lib -lmy_static_lib --magic-flag-to-keep-stripped-symbol
를 선호 공유 라이브러리.