该问题应该主要是由于未定义__stderr导致的。
在usart.c中只定义了__stdout ,但是在整个代码中使用了 __stderr 导致编译器将 stdio_streams.c 也加入编译,但 stdio_streams.c中已经定义了 __stdout 和 __stderr,所以导致重定义。
解决办法:
在usart.c中补充加入__stderr的定义。
FILE __stdout;
FILE __stderr;
该问题应该主要是由于未定义__stderr导致的。
在usart.c中只定义了__stdout ,但是在整个代码中使用了 __stderr 导致编译器将 stdio_streams.c 也加入编译,但 stdio_streams.c中已经定义了 __stdout 和 __stderr,所以导致重定义。
解决办法:
在usart.c中补充加入__stderr的定义。
FILE __stdout;
FILE __stderr;