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

Ibr*_*iev 0 gcc symbols shared-libraries elf dynamic-linking

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

yug*_*ugr 6

默认情况下,仅从共享库中导出符号。-rdynamic告诉链接器对可执行文件执行相同的操作。通常这不是一个好主意,但是有时您想为动态加载的插件提供API,这样便派上用场(尽管使用显式导出文件要好得多)。