Linux的Makefile简单实例教程

Linux大全评论615 views阅读模式

(测试版本: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制表符,而不是空格

企鹅博客
  • 本文由 发表于 2019年9月20日 19:08:30
  • 转载请务必保留本文链接:https://www.qieseo.com/147952.html

发表评论