相关疑难解决方法(0)

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

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

我已经-fvisibility=hidden.so项目的编译选项(包括.o文件)和项目添加了选项.a.

目标文件中的符号将按照预期从最终中删除.so.但是,.a项目中的符号仍然在最终.so文件中.将-fvisibility=hidden选项添加到.solink命令无效.

我究竟做错了什么?

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

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

gcc visibility static-libraries

43
推荐指数
3
解决办法
3万
查看次数

标签 统计

gcc ×1

static-libraries ×1

visibility ×1