我们使用gcc4.1.2构建了代码,并且我们使用了“sys / stat.h”系统头文件中定义的函数“lstat64”,并在我们使用的第三方库中定义。
当我们“nm”……
按照 GCC文档 :
的 弱 强> weak属性导致声明作为弱符号而不是全局符号发出。 的 这主要用于定义可在用户代码中重写的库函数 强> ,虽然它也可以与非函数声明一起使用。 ELF目标支持弱符号,并且在使用GNU汇编器和链接器时也支持a.out目标。
在你的情况下 lstat64 可能在GCC 4.1.2中被标记为弱,因为它不会与第三方库函数冲突。 GCC可能希望这些外部函数具有优先权。
lstat64
但是在后来的版本中,GCC本来想要它自己的版本 lstat64 有优先权。