【发布时间】:2018-05-22 16:57:34
【问题描述】:
user@pc ~/hiddensymbols
% cat main.cpp
__attribute__((visibility ("hidden"))) int f_b1(void){
return 21 ;
}
__attribute__((visibility ("hidden"))) int f_b3(void){
return f_b1() ;
} user@pc ~/hiddensymbols
% g++ -shared main.cpp
user@pc ~/hiddensymbols
% nm -C ./a.out
.............
000000000000055a t f_b1()
0000000000000565 t f_b3()
我想知道,将这两个符号留在 DSO 中有何意义?我知道动态链接器不能使用它们,但是为什么它们被添加到一些隐藏的符号表中呢?这样做的目的是什么?
【问题讨论】:
标签: c++ gcc linker shared-libraries