默认情况下,所有符号都会导出到动态表中,那么我们为什么要使用-rdynamic
标志?即使我们通过属性隐藏某些符号/ -fvisibility=hidden
- -rdynamic
也不会更改结果,但它不会取消隐藏先前隐藏的符号。那么它的重点是什么?
答案 0 :(得分:3)
默认情况下,只会从共享库中导出符号。 -rdynamic
告诉链接器对可执行文件执行相同的操作。通常情况下这是一个坏主意,但有时你想为动态加载的插件提供API,然后这很方便(即使使用显式导出文件要好得多)。