(Maybe many Winodws programmers don't know this tool, because those Windows IDEs have done this for you, but I think to be a good and professional programmer, you still need to understand makefile. It's like there are so many HTML editors, but if you want to be a professional, you still need to understand the meaning of the HTML logo. Software compilation, especially under Unix. This document includes the following annexes:)