我有一个 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
在上述场景中标志如何在内部与静态库一起工作吗?