-g vs -rdynamic

-g选项与-rdynamic选项的差别:
1,-g选项新添加的是调试信息(一系列.debug_xxx段),被相关调试工具,比如gdb使用,可以被strip掉。

2,-rdynamic选项新添加的是动态连接符号信息,用于动态连接功能,比如dlopen()系列函数、backtrace()系列函数使用,不能被strip掉,即强制strip将导致程序无法执行。添加-rdynamic选项后,.dynsym表就包含了所有的符号。backtrace就通过.dynsym来查找符号。

参考:http://lenky.info/archives/2013/01/13/2190

05-07 13:30