Функция ссылки в .a в .so - PullRequest
       19

Функция ссылки в .a в .so

2 голосов
/ 07 апреля 2011

Я написал общий libA.so . Моя программа P будет динамически загружаться libA.so (использует dlopen, dlsym ...).

Вот моя проблема:

В libA.so я должен использовать функции (например, fun1 () ) в статическом libB.a , но libB .a не скомпилирован с -fPIC, и я не могу перекомпилировать libB.a , поэтому я не могу связать libB.a в libA. так .

Я попробовал ссылку libB.a в P (с -Wl, - whole-archive), чтобы позволить динамической загрузке ссылку fun1 () в libA.so при загрузке. Однако это не работает. И я почти уверен, что fun1 () находится в P (я проверил это с помощью: nm P | grep "fun1").

Как мне это сделать?

Заранее спасибо!

1 Ответ

3 голосов
/ 07 апреля 2011

Если вы хотите связать libB.a с P, чтобы функции были доступны для libA.so при загрузке P, вам нужно скомпилировать P с опцией -rdynamic.

...