使用-qnoweakexp在AIX上进行链接

时间:2012-03-20 20:08:17

标签: aix xlc

使用-qnoweakexp选项链接共享库有哪些优点或缺点?

1 个答案:

答案 0 :(得分:1)

如果设置了-qnoweakexp,则不会导出weak symbols,这意味着您的共享库将更小(如果它有任何弱符号)。

弱符号是一些用#pragma weak标记的全局符号,或者编译器已经确定是弱符号(例如,我认为标记为内联的函数可能被认为是弱的)。 链接时,如果存在重复的符号,则第一个符号会赢,除非它很弱。顺序是:第一个强符号获胜,然后如果没有强符号,则第一个弱胜。

-qnoweakexp构建您的共享库,没有任何标记为弱的符号。如果您的应用程序从未实际引用此共享库中的弱符号,那么使用此选项是有意义的,因为它会缩小它的大小。但是,如果您的应用程序实际使用弱符号(函数或变量),那么显然这个选项是个坏主意,因为符号解析将失败。