LINUX.ORG.RU

Удалить лишние экспортируемые символы из библиотеки

 ,


1

3

Нужно написать библиотеку под оффтопик - написал. Но при компиляции она светит в экспорт всем своим содержимым. Как скрыть те символы, которые я не хочу экспортировать?

-fvisibility=hidden не помогает. Пробовал -s -DNDEBUG, но эта штука работает только с exe, у библиотеки резать лишнее не хочет.

Нашел инфу, что можно перед функцией static прописать и это частично решает проблему, но если функцию нужно дергать не в том же файле в котором она объявлена, то компилятор не может найти её. К тому же такой подход не работает с классами.

★★★★★

перед функцией static прописать
К тому же такой подход не работает с классами.

Это прием из С. В С++ для такого используются анонимные неймспейсы:

namespace {

void nonExportedFunction() {}

class NonExportedClass {};

int nonExportedVariable; 

// и т.д.

}

KennyMinigun ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.