Статическая библиотека загружена дважды

У меня есть общий объект A.so, который статически связывается с libssl.a, и другой общий объект B.so, который также статически связывает libssl.a.

A.so и B.so содержат символы из libssl.a в ГЛОБАЛЬНОЙ области видимости. Я проверил это с помощью readelf -s A.so

У меня есть исполняемый файл a.out, который загружает A.so и B.so. Когда a.out завершается, я получаю двойная бесплатная ошибка в одном из символов из libssl.a в A.so.

Несмотря на то, что libssl.a статически связана с каждым общим объектом, поскольку они в глобальном масштабе возможно, что один и тот же символ используется совместно вместо того, чтобы выбирать его локальную копию.

Каков обходной путь? Как сделать символы локальными здесь?

Помогите пожалуйста

7
задан KodeWarrior 12 June 2012 в 22:38
поделиться