В Linux я пытаюсь создать общую библиотеку libbar.so, которая встраивает коммерческую статическую библиотеку (лицензирование в порядке).Коммерческая библиотека имеет 4 версии: libfoo-seq.a, libfoo-mt.a, libfoo-seq.so и libfoo-mt.so (все они предоставляют одинаковые символы, только код является последовательным / многопоточным, ибиблиотека является статической / общей).Из этих четырех я хочу, чтобы мой код всегда использовал последовательную библиотеку foo, поэтому при создании libbar.so я связываю вместе свои объектные файлы и libfoo-seq.a.
Проблема заключается в том, что пользователи моей библиотекивозможно, уже загрузили libfoo-mt.so к тому моменту, когда они загружают мой libbar.so, поэтому все символы из libfoo уже присутствуют к моменту чтения libbar.so, поэтому мои вызовы функций в foo разрешаются вмногопоточная версия.
Интересно, как я могу решить эту проблему?Какие магические флаги мне нужно использовать при компиляции для создания моих объектных файлов и когда я связываю свои объектные файлы с libfoo-seq.a для создания libbar.so?