У меня есть проект, который создает разделяемую библиотеку, которая связана с другой, также совместно используемой библиотекой.
Когда я компилирую и связываю его с gcc 4.4, все работает:
ldd libmyproject.so
правильно сообщает зависимость от другой разделяемой библиотеки. Когда я компилирую и связываю его с gcc 4.5, с другой стороны (с точно такими же флагами), у меня возникают следующие симптомы:
ldd
и не вижу соединения, а также когда я пытаюсь его использовать: хотя он работает с gcc 4.4, он вылетает во время выполнения с gcc 4.5 с ошибкой «символ не найден» (конечно, из другой библиотеки). Я просмотрел примечания к выпуску и интуитивно понял, что это как-то связано с новой оптимизацией времени компоновки, но я не мог понять их достаточно подробно.
Сталкивался ли кто-нибудь с подобной ситуацией и / или может ли кто-нибудь дать совет?
(Обратите внимание, что результаты с 4.6 по внешнему виду идентичны 4.5).