如何限制动态库so符号导出?
发表于 : 2024-03-13 15:58
开发了一个动态库,在编译中使用 用来限制符号的导出,对于需要导出的符号使用 ,结果是对于自己在动态库中定义的符号使用限制生效了,但是对于自己间接引用的符号依然是GLOBAL权限;
请问如何将动态库内直接定义的符号或间接使用的符号,权限都设置为LOCAL?
root@dso-PC:/home/linux/bin# readelf -s libLck.so |grep _Znam
1405: 00000000000fd760 5 FUNC GLOBAL DEFAULT 12 _ZnamRKSt9nothrow_t
2154: 0000000000083140 5 FUNC GLOBAL DEFAULT 12 _Znam
2329: 00000000000fd760 5 FUNC GLOBAL DEFAULT 12 _ZnamRKSt9nothrow_t
2534: 0000000000083140 5 FUNC GLOBAL DEFAULT 12 _Znam
代码: 全选
-fvisibility=hidden
代码: 全选
__attribute__ ((visibility ("default")))
请问如何将动态库内直接定义的符号或间接使用的符号,权限都设置为LOCAL?
root@dso-PC:/home/linux/bin# readelf -s libLck.so |grep _Znam
1405: 00000000000fd760 5 FUNC GLOBAL DEFAULT 12 _ZnamRKSt9nothrow_t
2154: 0000000000083140 5 FUNC GLOBAL DEFAULT 12 _Znam
2329: 00000000000fd760 5 FUNC GLOBAL DEFAULT 12 _ZnamRKSt9nothrow_t
2534: 0000000000083140 5 FUNC GLOBAL DEFAULT 12 _Znam