Для теста я хотел бы загрузить два экземпляра разделяемой библиотеки из приложения. Код в библиотеке предоставляет API, но он не позволяет мне инициализировать два (или более) экземпляра библиотеки, потому что некоторые функции зависят от статических переменных.Загрузка двух экземпляров разделяемой библиотеки
В настоящее время я пишу модульные тесты для этого lib, и я хотел бы иметь два экземпляра, потому что это упростит мои тесты.
Библиотека не связана с программой. Вместо этого я загружаю его напрямую с помощью LoadLibrary/GetProcAddress (или dlopen/dlsym на linux). Для того, чтобы различать две библиотеки, я мог бы просто использовать различные имена для функции указателей я загружаю ...
Вот вопросы:
Можно ли загрузить такую библиотеку дважды? Например. Все загруженные экземпляры библиотеки должны получать свой собственный сегмент данных и не влиять друг на друга.
Если это так: Является ли это переносной для окон и Linux?
Все скомпилировано с помощью -fPIC, конечно .. Не знал о RTLD_PRIVATE. После мужской сессии он выглядит именно так, что я хочу - для Linux наконец. Я могу открыть отдельный вопрос для окон. –