Мое приложение имеет систему плагинов, которая позволяет моим пользователям писать свои собственные плагины, которые загружаются во время выполнения.Обычно это нормально, но в некоторых случаях два плагина используют одни и те же библиотеки, что вызовет конфликт между этими двумя.
Пример:
Плагин A хочет использовать TouchJSON для работы с JSON и, таким образом, создатель добавляет код TouchJSON в исходный код плагина, который компилируется и связывается с двоичным файлом плагина.Позже Плагин B также хочет использовать ту же библиотеку и делает то же самое.Теперь, когда мое приложение загружает эти два разных плагина, оно обнаруживает это и выдает следующее предупреждение:
Класс CJSONScanner реализован как в [path_to_plugin_a], так и в [path_to_plugin_b].Один из двух будет использован.Какой из них не определен.
Поскольку мое приложение просто загружает плагины и проверяет их соответствие определенному протоколу, я не могу контролировать, какие плагины загружаются, и если два или более используют ту же библиотеку.
Пока оба плагина используют одну и ту же версию библиотеки, это, вероятно, будет работать, но как только API изменится в одном плагине, возникнет куча проблем.
Могу ли я что-нибудь сделатьоб этом?