LINUX.ORG.RU

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

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

Мне такой способ неизвестен, и даже если он есть, он очевидно будет 1) кривой; 2) непереносимый; 3) неочевиден для восприятия любым, кто через полгода будет копаться в коде, включая автора.

Кроме того, если so-шки писали разные люди в разных проектах, то у них почти наверняка даже в случае «идейной схожести» кроме разных имён функций будут и «чуть-чуть разные» параметры, а тут уже никакое «автоматическое связывание» не поможет. А если их пишет один человек или разные люди, но по одному руководящему документу - то что мешает и имена функций унифицировать?

Короче, если имена/параметры функций идентичны, можно сделать dlopen с плагинами и dlsym на каждую функцию. А если разные - то либо выбор (например, через враппер) в вызывающей программе (dlopen тогда вообще не нужен, если so друг с другом не конфликтуют самим фактом загрузки, их можно средствами ОС грузить)... либо опять плагины с so-переходниками. Сложно? Да, сложно, унификация разных интерфейсов по определению непростая задача, даже если они отличаются какой-то мелочью.

Исправление hobbit, :

Мне такой способ неизвестен, и даже если он есть, он очевидно будет 1) кривой; 2) непереносимый; 3) неочевиден для восприятия любым, кто через полгода будет копаться в коде, включая автора.

Кроме того, если so-шки писали разные люди, то у них почти наверняка даже в случае «идейной схожести» кроме разных имён функций будут и «чуть-чуть разные» параметры, а тут уже никакое «автоматическое связывание» не поможет. А если их пишет один человек или разные люди, но по одному руководящему документу - то что мешает и имена функций унифицировать?

Короче, если имена/параметры функций идентичны, можно сделать dlopen с плагинами и dlsym на каждую функцию. А если разные - то либо выбор (например, через враппер) в вызывающей программе (dlopen тогда вообще не нужен, если so друг с другом не конфликтуют самим фактом загрузки, их можно средствами ОС грузить)... либо опять плагины с so-переходниками. Сложно? Да, сложно, унификация разных интерфейсов по определению непростая задача, даже если они отличаются какой-то мелочью.

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

Мне такой способ неизвестен, и даже если он есть, он очевидно будет 1) кривой; 2) непереносимый; 3) неочевиден для восприятия любым, кто через полгода будет копаться в коде, включая автора.

Кроме того, если so-шки писали разные люди, то у них почти наверняка даже в случае «идейной схожести» кроме разных имён функций будут и «чуть-чуть разные параметры», а тут уже никакое «автоматическое связывание» не поможет. А если их пишет один человек или разные люди, но по одному руководящему документу - то что мешает и имена функций унифицировать?

Короче, если имена/параметры функций идентичны, можно сделать dlopen с плагинами и dlsym на каждую функцию. А если разные - то либо выбор (например, через враппер) в вызывающей программе (dlopen тогда вообще не нужен, если so друг с другом не конфликтуют самим фактом загрузки, их можно средствами ОС грузить)... либо опять плагины с so-переходниками.