LINUX.ORG.RU

История изменений

Исправление hobbit, (текущая версия) :

А если нет, то это уже другая задача, и без ещё одной библиотеки, которая будет абстрагировать эти три, используя dlsym(), похоже, не обойтись.

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

Но я бы в случае задачи ТС-а и предполагая, что различия между so придётся учитывать, всё-таки сделал в вызывающей программе структуру-надстройку: и отлаживать проще, и абстракций поменьше.

Исходная версия hobbit, :

А если нет, то это уже другая задача, и без ещё одной библиотеки, которая будет абстрагировать эти три, используя dlsym(), похоже, не обойтись.

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

Но я бы в случае задачи ТС-а и предполагая, что различия между so придётся учитывать, всё-таки сделал в вызывающей программе структуру-надстройку: и отлаживать проще, и абстракций поменьше.