У меня есть ситуация, когда у меня есть две общие библиотеки, назовем их libA.so и libB.so.libA.so загружается через dlopen () и использует синглтон.libA.so в какой-то момент загружает libB.so через dlopen (), который также использует тот же синглтон.К сожалению, динамический компоновщик не может объединить эти одноэлементные символы в один, и в результате получается два одноэлементных экземпляра.
Когда такая ситуация возникает с исполняемым файлом и динамически загружаемой библиотекой, я знаю, что обычным решением является добавление:динамическая при связывании исполняемого файла.Это не работает здесь.Символ в обеих библиотеках экспортируется как V
, и я не знаю, что делать, чтобы динамический компоновщик объединял их вместе.
РЕДАКТИРОВАТЬ: это было протестировано на Android и, похоже, специфично для Android,а не общий.