У меня есть вопрос об атрибуте видимости C ++. Я прочитал http://gcc.gnu.org/wiki/Visibility , и все же я не совсем понимаю, как это работает.
Я хочу использовать видимость, чтобы быть скрытой в некоторых моих общих библиотеках. иметь. Я полагаю, это означает, что символы скрыты?
Как вы собираетесь связать общую библиотеку? Есть ли особый способ? Если я связываю это как обычно, это не работает.
Может кто-нибудь помочь мне, пожалуйста.
-fvisibility=hidden
скрывает все ваши символы по умолчанию.
Затем вам нужно выбрать, какие функции вы хотите сделать видимыми для пользователей, связывающихся с вашей библиотекой, и сделать их видимыми, пометив их видимым атрибутом.
Например.
void __attribute__((visibility("default"))) Exported()
{
// ...
}