1.Makefile是干嘛的呢?
这么说吧:你有一个文件A包含了文件B, C, D,E,F,G,K,W,Q等多个文件,当B~Q中某一个文件改变或多个文件改变时。但A文件不知道啊,那你就需要重新编译,链接你的文 件了。 但是这么多的文件我们在linux下用gcc一行一行的敲,那多麻烦啊!而Makefile就是来解决这个麻烦的,当你写好了Makefile文件时,使用make命令后就会直接帮你加载那些改变的文件。
2.源码
用vi编辑main.c myTest1.c myTest.h myTest2.c myTest2.h 等五个文件。
代码如下:
main.c
#include "myTest1.h"
#include "myTest2.h"
int main(int argc, char** argv)
{
myTest1_print("Hello");
myTest2_print("World");
}
myTest1.c
#include "myTest1.h"
void myTest1_print(char* str)
{
printf("This is myTest1 print %s\n", str);
}
myTest1.h
#ifndef _MYTEST_1_H
#define _MYTEST_1_H
void myTest1_print(char* str);
#endif
myTest2.c
#include "myTest2.h"
void myTest2_print(char* str)
{
printf("This is myTest2 print %s\n",str);
}
myTest2.h
#ifndef _MYTEST_2_H
#define _MYTEST_2_H
void myTest2_print(char* str);
#endif
Makefile
main:main.o myTest1.o myTest2.o
gcc -o main main.o myTest1.o myTest2.o
main.o: main.c myTest1.h myTest2.h
gcc -c main.c
myTest1.o: myTest1.c myTest1.h
gcc -c myTest1.c
myTest2.o: myTest2.c myTest2.h
gcc -c myTest2.c