如何将-fvisibility选项应用于静态库中的符号?

我有一个共享库项目,该项目由4个静态库(.a)和一个对象(.o)文件构建。我试图添加-fvisibility=hidden选项以将输出中的符号限制为仅使用__attribute__在源中标记的符号。


我已将该-fvisibility=hidden选项添加到.so项目(涵盖.o文件)和项目的编译选项中.a。


目标文件中的符号已从final中删除.so。但是,.a项目中的符号都仍在最终.so文件中。将-fvisibility=hidden选项添加到.so链接命令无效。


我究竟做错了什么?


我的目的是从.so库的接口函数之外的所有符号中删除。


编辑:我实际上使用了一个版本映射来解决这个问题。但是,随着外部符号的更改,它需要继续维护版本脚本。接受的答案有一个更好的主意。


扬帆大鱼
浏览 1750回答 3
3回答
打开App,查看更多内容
随时随地看视频慕课网APP