В Linux у меня есть некоторый сгенерированный код C ++ из статической библиотеки, которая определяет глобальную переменную. Один экземпляр этой глобальной переменной совместно используется двумя общими библиотеками, которые ссылаются на ее символ.
Когда процесс завершается и запускается фаза статического завершения, я вижу, что деструктор на этом общем экземпляре запускается дважды! Предположительно один раз для каждой библиотеки при каждой выгрузке.
Этот вопрос тесно связан с другим, который я недавно видел здесь: связанный вопрос . Это звучит как то же самое поведение, но нет никаких дискуссий о том, почему это происходит.
Кто-нибудь знает теоретическое объяснение этого поведения?