История изменений
Исправление hobbit, (текущая версия) :
А если нет, то это уже другая задача, и без ещё одной библиотеки, которая будет абстрагировать эти три, используя dlsym(), похоже, не обойтись.
Есть ещё вариант - прикладная программа грузит плагины-переходники по единому интерфейсу через dlopen, а уже те подгружают искомые so средствами ОС и нивелируют различия в наборе функций. ЕМНИП, так некоторые плееры работают: собственные плагины с единым API, а те уже вызывают кодеки форматов, которые по API могут быть довольно разнородными. Кода получается многовато, но по архитектуре вполне изящно и единообразно.
Но я бы в случае задачи ТС-а и предполагая, что различия между so придётся учитывать, всё-таки сделал в вызывающей программе структуру-надстройку: и отлаживать проще, и абстракций поменьше.
Исходная версия hobbit, :
А если нет, то это уже другая задача, и без ещё одной библиотеки, которая будет абстрагировать эти три, используя dlsym(), похоже, не обойтись.
Есть ещё вариант - прикладная программа грузит плагины-переходники по единому интерфейсу через dlopen, а уже те подгружают искомые so средствами ОС и нивелируют различия в наборе функций. ЕМНИП, так некоторые плееры работают: собственные плагины с едины API, а те уже вызывают кодеки форматов, которые по API могут быть довольно разнородными.
Но я бы в случае задачи ТС-а и предполагая, что различия между so придётся учитывать, всё-таки сделал в вызывающей программе структуру-надстройку: и отлаживать проще, и абстракций поменьше.