当前位置: 技术问答>linux和unix
Makefile管理C语言工程
来源: 互联网 发布时间:2017-01-17
本文导语: 本帖最后由 yh_no_code 于 2011-11-16 22:14:01 编辑 我想使用Makefile的嵌套使用,但是总是提示找不到相关的头文件,当我不使用Makefile的嵌套来编译的时候是没有问题的。我的C文件的目录有 chap5 | |-------- Makefile |-- src | ...
chap5
|
|-------- Makefile
|-- src
| |----main.c
| |----add.c
| |---- Makefile
|
|-- include
|----const.h
|----add.h
include/const.h文件内容如下
#ifndef _CONST_H
#define _CONST_H
#define A 100
#define B 200
#endif
include/add.h的内容如下:
#ifndef _ADD_H
#define _ADD_H
extern int add( int a, int b );
#endif
src目录的文件如下:
src/main.c
#include
#include "const.h"
#include "add.h"
int main( int argc, char** argv )
{
int res = add( A, B );
printf( "Result is:%d", res );
return 0;
}
src/add.c内容如下:
int add( int a, int b )
{
return ( a + b );
}
我的Makefile布局是这样的:在chap5目录下有一个主Makefile,在src中有一个Makefile,使用主Makefile去调用,src中的Makefile。
主Makefile如下
#主Makefile
.PHONY : all final_target
final_target : src/main
all : fianl_target
(cd src, make)
---------------------------------------------------------------------
#src/Makefile 内容
CCFLAGS = -I ../include
main : main.o add.o
gcc $^ -o $@
add.o : add.c ../include/add.h
gcc (CCFLAGS) -c $