【发布时间】:2012-04-05 08:28:16
【问题描述】:
使用 -qnoweakexp 选项链接共享库有哪些优点或缺点?
【问题讨论】:
使用 -qnoweakexp 选项链接共享库有哪些优点或缺点?
【问题讨论】:
如果设置了 -qnoweakexp,则不会导出 weak symbols,这意味着您的共享库会更小(如果它有任何弱符号)。
弱符号是用#pragma weak 标记的某个全局符号,或者编译器已确定是弱符号(例如,我认为标记为内联的函数可能被认为是弱符号)。 链接时,如果存在重复符号,通常第一个获胜,除非它很弱。顺序是:先强符号获胜,如果没有强符号,则先弱获胜。
-qnoweakexp 构建您的共享库,没有任何标记为弱的符号。如果您的应用程序从未真正引用此共享库中的弱符号,那么使用此选项是有意义的,因为它会缩小它的大小。但是,如果您的应用程序实际上使用了弱符号(函数或变量),那么显然这个选项是个坏主意,因为符号解析会失败。
【讨论】: