从静态库中隐藏符号
我有一个 C++ 共享库 - libA.so. 我使用-fvisibility=hidden标志隐藏符号。应该可见的符号具有以下属性:__attribute__ ((visibility ("default"))). 该库链接到静态库 - libB.a。该静态库 ( libB.a) 中的所有符号应仅对共享库 ( libA.so)可见。我也用 flag 编译了静态库-fvisibility=hidden。我得到了想要的结果 - 来自libB.a的符号仅对libA.so外部世界可见但对外部世界隐藏,例如以下命令nm -C libA.so不显示来自libB.a.
你能解释一下这个标志-fvisibility=hidden是如何在上面的场景中与静态库一起在内部工作的吗?