__attribute__((weak)) 修饰的函数没有被覆盖

需求 定义了同名函数后,原来的 __attribute__((weak)) 修饰的函数并没有被覆盖 ? 解决 打开生成的 map 文件,经过搜索,只找到了原来的函数,并没有找到新定义的函数。 在头文件中增加了新定义函数的声明 int _write(int file, char *ptr, int len);, 重新编译后,打开 map 文件,就可以找到新定义的函数了。 所以这个问题还是因为没有在头文件中声明,导致 printf 再调用的时候,只找到了弱定义的 write. 参考 ARM 之十一__weak 和 attribute((weak)) 关键字的使用 弱符号_attribute_((weak))

<span title='2023-11-10 14:36:00 +0800 CST'>2023-11-10</span>&nbsp;·&nbsp;1 min&nbsp;·&nbsp;31 words&nbsp;·&nbsp;RamLife