为什么我们在gcc中需要-rdynamic选项?

时间:2018-05-18 20:37:59

标签: gcc shared-libraries symbols elf dynamic-linking

默认情况下,所有符号都会导出到动态表中,那么我们为什么要使用-rdynamic标志?即使我们通过属性隐藏某些符号/ -fvisibility=hidden - -rdynamic也不会更改结果,但它不会取消隐藏先前隐藏的符号。那么它的重点是什么?

1 个答案:

答案 0 :(得分:3)

默认情况下,只会从共享库中导出符号。 -rdynamic告诉链接器对可执行文件执行相同的操作。通常情况下这是一个坏主意,但有时你想为动态加载的插件提供API,然后这很方便(即使使用显式导出文件要好得多)。