= make会将整个makefile展开后,再决定变量的值。也就是说,变量的值将会是整个makefile中最后被指定的值。:= 表示变量的值决定于它在makefile中的位置,而不是整个makefile展开后的最终值。?= 是如果没有被赋值过就赋予等号后面的值+= 是添加等号后面的值
$@ 目标文件
$^ 所有的依赖文件
$< 第一个依赖文件。
关于makefile中的知识点<不断补充>
原文:http://www.cnblogs.com/ZXNblog/p/4004875.html