学习makefile与autoconfig笔记,持续更新

main.c

#include<stdio.h>
#include"chen_print.h"

int main(int argc , char * argv ){
   chen_print("haha , I'm coming makefile
");
   return 0;
}

chen_print.c

#include<stdio.h>

void chen_print( char * str ){
printf("you enter string is :
	%s",str);
}

chen_print.h

void chen_print( char * str );

makefile

main:chen_print.h libchen_print.a
  gcc main.c -o main -L./ -lchen_print
libchen_print.a:chen_print.o
  ar -r libchen_print.a chen_print.o

chen_print.o:chen_print.h chen_print.c
  gcc -c chen_print.c -o chen_print.o

clean:
  rm -f *.o
  rm -f *.a
  rm -f main

简单介绍一下makefile的格式

target:filename1 filename2

<tab>common

其实makefile的规则很简单,就是看你的目标文件(target)做依赖的文件(filename1 filename2)是否有更新,如果依赖文件更新了,它就会自动执行下面的shell命令

注意,shell命令必须要一<table>键做开头,makefile的格式强制这样,没有办法。如果你觉得<tab>不够美观,建议你修改tab的跳转空格数:

   vi 上执行:set ts=3

   或者直接修改vi的默认配置文件

   vi ~/.vimrc

   如果原文件已经存在: set ts=n ,那样修改它就好了,如果不存在这句,那么直接在文件末尾加上即可。

我的makefile中还写了clean的命令,是做环境清理用的,执行

$>make clean

它就会执行下面清理的动作

同理,我们在使用

$>make install

这些命令时,实质上就是执行一些shell动作

******************************************

自己学习的网站资料:

详细介绍makefile的用法,入门必备
http://blog.csdn.net/liang13664759/article/details/1771246

有一些入门基础后看的进阶文章
http://goodcandle.cnblogs.com/archive/2006/03/30/278702.html

再进击
原文地址:https://www.cnblogs.com/chenfool/p/3576486.html