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