Linux的Makefile简单实例教程

(测试版本:RedHat 9.0简体中文版)

先建立以下实例程序文本:

/**************************filename:main.c**************************/

#include <stdio.h>

#include <stdlib.h>


#include "hello.h"

#include "init.h"


void aftermain(void)

{

       printf("\n");

       printf("<<<<<<<aftermain>>>>>>>>>\n");

       printf("..............\n");

       return 0;

}


int main(int argc,char *argv[])

{

       printf("========main=======\n");

       init(1234);

       hello(argc,argv);

       atexit(aftermain);

       printf(".....exit main......\n");


       return 0;

}

/**********************filename:init.c***************************/

#include <stdio.h>

#include "init.h"


const char ro_data[1024]={"This is readonly data"};

static char rw_data[1024]={"This is readwrite data"};

static char bss_data[1024];


int init(int number)

{

       printf("input number:%d\n",number);

       printf("ro_data:%x,%s\n",(unsigned int)ro_data,ro_data);

       printf("rw_data:%x,%s\n",(unsigned int)rw_data,rw_data);

       printf("bss_data:%x,%s\n",(unsigned int)bss_data,bss_data);

       return number;


}

/*******************filename:hello.c********************/

#include <stdio.h>

#include "hello.h"


int hello(int argc,char *argv[])

{

       int i;

       printf("Hello world!\n");

       for(i=0;i<argc;i++)

       {

              printf("argv[%d]=%s\n",i,argv[i]);

       }

       return 0;

}

/****************filename:init.h*************************/

#ifndef _INIT_H_

#define _INIT_H_


int init(int number);


#endif

/*********************filename:hello.c*********************/

#ifndef _HELLO_H_

#define _HELLO_H_


int hello(int argv,char *argc[]);


#endif

由依赖关系可以知道:

All: main.o hello.o init.o

Main.o: main.c hello.h init.h

Hello.o:hello.c hello.h

Init.o init.h init.c


建立终端,在终端输入

Vi makefile1

即建立makefile1的文本文件

all:   main.o hello.o init.o      

       gcc -o myapp main.o hello.o init.o


main.o:    main.c hello.h init.h

       gcc -c main.c

hello.o:    hello.c hello.h

       gcc -c hello.c

init.o:      init.c init.h

       gcc -c init.c          

注意: 以“:”结尾的后面跟的是tab制表符,而不是空格

在终端输入 make –f makefile 即编译成功

Make文件中的注释以#开头

相关推荐