В системной консоли macOS эта ошибка регистрируется при запуске одного из моих приложений:
APP [28193]: ошибка динамического вещания 2: один или несколько из следующих типов данных имеют скрытую видимость. Все они должны иметь публичную видимость. 17CPPNameOfClassA, 28CPPNameOfClassB.
Насколько я могу судить, это не влияет на функциональность (пока), но, очевидно, что-то не так. Проверка источника этого предупреждения в лязг источники также предполагают, что это оказывает влияние на производительность.
Это генерируется для фреймворка, включающего классы C ++, используемые другими фреймворками в моем приложении, ссылающемся на него
FWIW, предупреждение вызвано private_typeinfo.cpp
класс в лязг (https://github.com/llvm-mirror/libcxxabi/blob/master/src/private_typeinfo.cpp).
Согласно Управление видимостью символов глава в Apple Руководство по программированию среды выполнения C ++ Я должен иметь возможность контролировать видимость на уровне класса с помощью атрибутов или прагм GCC.
Насколько я могу судить, этот символ уже виден nm
и мои рамки все уже есть Default
видимость (т.е. НЕ Hidden
).
Также использование либо (атрибута, либо прагмы) для принудительного отображения по умолчанию приводит к сбою приложения, когда оно только создало предупреждение.
Как ни странно это предупреждение генерируется только для некоторых классов, в то время как большинство других классов в том же модуле компиляции / рамки не вызывать никаких предупреждений.
Будем очень благодарны за любые дополнительные советы или идеи о том, как решить эту проблему!
Это старый вопрос, но, возможно, это поможет кому-то еще с той же проблемой.
Одной из причин этого может быть то, что ваше приложение загружает несколько разных версий одной и той же библиотеки. Например, в моем случае я просто не удалил путь к старой версии из пути поиска библиотеки. Попробуйте посмотреть (в отладчике), какие библиотеки загружены в ваше приложение, и убедитесь, что одна и та же библиотека не была загружена из разных мест.
Пытаясь решить эту проблему, я нашел эти ссылки полезными: https://forums.wxwidgets.org/viewtopic.php?t=42566, http://www.russellmcc.com/posts/2013-08-03-rtti.html.
Других решений пока нет …