C ++ -fvisibility = hidden -fvisibility-inlines-hidden

У меня есть вопрос об атрибуте видимости C ++. Я прочитал http://gcc.gnu.org/wiki/Visibility , и все же я не совсем понимаю, как это работает.

Я хочу использовать видимость, чтобы быть скрытой в некоторых моих общих библиотеках. иметь. Я полагаю, это означает, что символы скрыты?

Как вы собираетесь связать общую библиотеку? Есть ли особый способ? Если я связываю это как обычно, это не работает.

Может кто-нибудь помочь мне, пожалуйста.

17
задан nixgadget 25 August 2010 в 21:28
поделиться

1 ответ

-fvisibility=hidden скрывает все ваши символы по умолчанию.

Затем вам нужно выбрать, какие функции вы хотите сделать видимыми для пользователей, связывающихся с вашей библиотекой, и сделать их видимыми, пометив их видимым атрибутом.

Например.

void __attribute__((visibility("default"))) Exported()
{
    // ...
}
32
ответ дан 30 November 2019 в 11:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: