请教:这个makefile的写法
在工程目录(Proj)下有如下几个子目录:
headers(用于统一存放.a静态库的头文件,以便于其它程序调用.a文件时,统一到该目录下寻找相应的头文件);
lib(用于统一存放.a静态库文件,其它程序到该目录下寻找库文件,调用相应的方法);
myMaths(数学功能的.c文件,编译后生成.a静态库(置于上面lib目录下));
operations(应用程序目录,调用上述的数学功能库)。
-----------------------
在headers目录下,有myMaths.h头文件。
其内容为:
int myIntAdd(int a, int b);
int myIntMinus(int a, int b);
在myMaths目录下,有myMaths.c实现文件。
其内容为:
#include "myMaths.h" //希望引用上述../headers/目录下的myMaths.h头文件
int myIntAdd(int a, int b)
{
return a+b;
}
int myIntMinus(int a, int b)
{
return a-b;
}
--------------------------------------------
现在想在myMaths目录下,写一个makefile文件,
将myMahts.c中的两个功能函数编译成.a静态库文件,并置于../lib/目录下。
我目前写的makefile为:
myMaths.a : myMaths.o
ar rc myMaths.a myMaths.o
rm myMaths.o
myMaths.o : myMaths.c
g++ -o myMaths.o -c myMaths.c -I ../headers
clean:
rm *.o
上述makefiel可以运行,并生成.a文件,
但我不希望写上述的“-I ../headers”,
据说通过VPATH可以设置查找路径,
但由于不会用,发现不起作用(不写-I,就找不到头文件)。
所以,请教各位,
该如何写在myMahts目录下的makefiel文件,
使其能够自动查找../headers目录下的头文件,并生成相应.a文件。
或者,还有什么更好的方法实现上述的需求?
谢谢!!