Как заставить gcc связывать статические объекты C ++ без ссылок из библиотеки

Я использую библиотеку C ++, которая может быть построена как совместно используемая или как статическая библиотека. Эта библиотека использует фабричную технику, при которой статические объекты регистрируются при запуске программы и статические объекты создаются.

Это прекрасно работает, пока используется разделяемая библиотека. Когда используется статическая версия, ни один из статических объектов не включается в окончательную программу (потому что на них не ссылаются напрямую), и, следовательно, их функциональность недоступна.

Есть ли способ заставить gcc включать все статические объекты из библиотеки при компоновке?

Библиотека с открытым исходным кодом, и я могу изменить ее, если это поможет.

24
задан Jonathan Leffler 9 December 2014 в 03:45
поделиться