求教:多级目录的makefile要怎么写?
例如:建立一个文件夹 :m
m中包含:main.c 文件夹 a 文件夹 b
//main.c
#include <stdio.h>
#include "a.h"
#include "b.h"
int main(void)
{
a();
b();
printf("and thanks!\n");
}
文件夹 a
//a.h
#ifndef _A_H_
#define _A_H_
void a();
#endif
//a.c
#include<stdio.h>
#include"a.h"
{
printf("hello! \n");
}
文件夹 b
//b.h
#ifndef _B_H_
#define _B_H_
void b();
#endif
//b.c
#include<stdio.h>
#include"b.h"
{
printf("everyone. \n");
}
写一个像这样比较简单的程序,文件夹 a 和 b 还有 m 里面的 makefile 要怎么写啊?各位高手帮帮忙啊,小弟初学,打字也很辛苦的!谢谢大家!
------解决方案--------------------makefile中指定头文件查找路径
gcc -Ia -Ib ..
另外,可以使用变量VPATH来定义源文件的查找路径
VPATH=a:b:.
------解决方案--------------------建议参考linux内核里面的写法
------解决方案--------------------我的做法是这样:
1、将子目录(a、b)下的代码编译成静态库
2、在m目录的Makefile中连接这些静态库,生成可执行文件。
缺点:有多少个静态库,要显式指定静态库。
链接:
http://www.latelee.org/programming-under-linux/113-multi-makefile-for-app.html
希望对楼主有帮助。