问题
By default all symbols are exported to dynamic table, so why would we use -rdynamic
flag? Even if we hide some symbols via attributes/-fvisibility=hidden
- -rdynamic
doesn't change result, it doesn't unhide previously hidden symbols. So what's the point in it?
回答1:
Symbols are only exported by default from shared libraries. -rdynamic
tells linker to do the same for executables. Normally that's a bad idea but sometimes you want to provide APIs for dynamically loaded plugins and then this comes handy (even though one much better off using explicit export file).
来源:https://stackoverflow.com/questions/50418941/why-do-we-need-rdynamic-option-in-gcc