您的位置:首页 > 其它

Makefile编写

2012-05-09 16:53 134 查看
继续联系写小程序

假设我们有下面这样的一个程序,源代码如下:

/* main.c */

#include "mytool1.h"

#include "mytool2.h"

int main(int argc,char **argv)

{

mytool1_print("hello");

mytool2_print("shelly");

}

/* mytool1.h */

#ifndef _MYTOOL_1_H

#define _MYTOOL_1_H

void mytool1_print(char *print_str);

#endif

/* mytool1.c */

#include "mytool1.h"

void mytool1_print(char *print_str)

{

printf("This is mytool1 print %s\n",print_str);

}

/* mytool2.h */

#ifndef _MYTOOL_2_H

#define _MYTOOL_2_H

void mytool2_print(char *print_str);

#endif



/* mytool2.c */

#include "mytool2.h"

void mytool2_print(char *print_str)

{

printf("This is mytool2 print %s\n",print_str);

}

编写Makefile文件:

main:main.o mytool1.o mytool2.o

g++ -o main main.o mytool1.o mytool2.o

main.o:main.cpp mytool1.h mytool2.h

g++ -c main.cpp

mytool1.o: mytool1.cpp mytool1.h

g++ -c mytool1.cpp

mytool2.o:mytool2.cpp mytool2.h

g++ -c mytool2.cpp



在Makefile中#开始的行都是注释行.

Makefile中最重要的是描述文件的依赖关系的说明.

一般的格式是:

target: components

TAB rule

第一行表示的是依赖关系.第二行是规则.

比如说我们上面的那个Makefile文件的第一行

main:main.o mytool1.o mytool2.o

表示我们的目标(target)main的依赖对象(components)是main.o mytool1.o mytool2.o 当倚赖的对象在目标修改后修改的话,就要去执行规则一行所指定的命令.就象我们的上面那个Makefile第二行所说的一样要执行 g++ -o main main.o mytool1.o mytool2.o

注意规则一行中的TAB表示那里是一个TAB键





Makefile编写完毕

make

./main

最终结果:

this is mytool1 print hello

this is mytool2 print shelly
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: