2011-04-07 3 views
2

나는 libA.so 공유를 작성했습니다. 내 프로그램 P은 동적로드 libA.so (dlopen, dlsym ... 사용)입니다. 여기 .a에 .a의 링크 기능이 있습니다.

내 문제입니다 : 내가 정적 libB.a에 ( fun1() 등) 기능을 사용할 필요가

libA.so에서,하지만 libB.a은 아니다 -fPIC으로 컴파일하고 libB.a을 다시 컴파일 할 수 없으므로 libB.alibA.so에 연결할 수 없습니다. 내가 P에 링크 에게 libB.a을 시도

(-Wl와, - 전체 아카이브)이 때, 순서 에 동적 로더 링크를 libA.sofun1()을 수 있도록 짐을 실은. 그러나, 그것은 작동하지 않습니다. 그리고 나는 fun1()P (nm P | grep "fun1"으로 확인)에 있음을 확신합니다.

어떻게하면됩니까?

미리 감사드립니다. 당신이 P에 의해로드 될 때 기능 libA.so에 사용할 수 있도록, PlibB.a를 연결하려면

+0

오류 메시지 :'P : 심볼 검색 오류 : ./mylib/libA.so : 정의되지 않은 심볼 : fun1' 및 nm 출력 :'nm P | grep "fun1" 0000000000510f76 T fun1' – iCoder

답변

3

, 당신은 -rdynamic 옵션을 P을 컴파일 할 필요가있다.

관련 문제