我不确定在头文件中完全实现
struct
在用作共享库的一部分时是否会对 __attribute__(( visibility("default")))
的需要产生任何影响。
您不需要将完全内联类的可见性设置为默认值。实际上添加它是不可取的,因为它会强制从包含此标头的所有共享模块导出类的符号,这会增加二进制文件的大小并减慢启动速度。
如果您使用
进行编译-fvisibility=hidden
所有导出的函数和变量设置为可见性默认值,因此共享库的用户可以在执行时使用:
nm -C -D <library>.so
然后您可以看到将其设置为默认值和未设置为默认值时的差异。