Я пишу c ++ lib, скажем mylib
. Для большинства пользователей видимость символов требуется только для нескольких API-интерфейсов publi c. Я выпускаю mylib
через библиотеку .so
Dynami c. Но у меня есть другое репозиторий кода, скажем mylib_builder
, который строит объекты в mylib
и сериализует эти объекты на диск. mylib_builder
требует большей видимости символов, поскольку ему может потребоваться доступ к некоторым очень внутренним объектам в mylib
.
Причина, по которой я делаю две отдельные библиотеки, заключается в том, что сам mylib_builder
очень сложен и имеет огромные размеры. codebase, поэтому их разделение может упростить управление всем проектом.
Проблема в том, что обычные пользователи и mylib
имеют разные требования к видимости символов, как я могу этого добиться? Или, может быть, разделение mylib
и mylib_builder
не является хорошей практикой?