You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过版本脚本为所有导出符号加版本且不修改可见性?

GNU链接脚本:批量为所有导出符号分配版本

你用的这个写法VERS_1.1 { *; };完全有效,就是用来给所有默认导出的符号统一分配版本的。

为啥这个写法管用

GNU链接器的版本脚本规则里,版本块内的*是通配符,会匹配所有默认可见(即原本会被导出)的符号。不需要把每个符号都列出来,就能把它们全部归到指定的版本VERS_1.1下。

怎么确认效果

编译链接后,用readelf -sW 你的库文件名或者objdump -T 你的库文件名查看符号表,所有导出符号的版本字段应该都显示为VERS_1.1,这样就说明生效了。

进阶用法:排除特定符号

如果有个别符号不想分配这个版本或者要隐藏,可以在版本块里加local:指令来排除,比如:

VERS_1.1 {
    *;
local:
    foo;
    bar;
};

这样除了foo和bar会被设为局部符号(不导出),其他所有导出符号都会带上VERS_1.1版本。

内容的提问来源于stack exchange,提问作者Dan M.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 05:12:33