当前位置: 技术问答>linux和unix
高手来 Makefile中编译连接的问题 在线等
来源: 互联网 发布时间:2016-04-29
本文导语: 工程如下: 主文件夹:test 主文件夹test下有两个文件夹和一个Make.defines文件,两个文件夹分别是:lib,sources。 lib文件夹下有如下文件:my_include.h,swap.c,Makefile三个文件 sources文件夹下有如下文件:test.c,Makefile两个文件 ...
工程如下:
主文件夹:test
主文件夹test下有两个文件夹和一个Make.defines文件,两个文件夹分别是:lib,sources。
lib文件夹下有如下文件:my_include.h,swap.c,Makefile三个文件
sources文件夹下有如下文件:test.c,Makefile两个文件
test文件夹中
Make.defines内容如下:
lib文件夹中
my_include.h内容如下:
swap.c内容如下:
Makefile内容如下:
主文件夹:test
主文件夹test下有两个文件夹和一个Make.defines文件,两个文件夹分别是:lib,sources。
lib文件夹下有如下文件:my_include.h,swap.c,Makefile三个文件
sources文件夹下有如下文件:test.c,Makefile两个文件
test文件夹中
Make.defines内容如下:
CC = gcc
CFLAGS = -I ../lib -g -O2 -D_REENTRANT -Wall
PRO := test.c
SOURCES = ${filter-out ${wildcard *.c}, ${PRO}}
OBJS = ${patsubst %.c, %.o, ${SOURCES}}
CLEANFILES = *.o
lib文件夹中
my_include.h内容如下:
#include
void swap(int *,int *);
swap.c内容如下:
#include "my_include.h"
void
swap(int *p1, int *p2)
{
int temp;
temp = *p1;
*p1 = *p2;
*p2 = temp;
}
Makefile内容如下:
#include ../Make.defines
LIB_SOURCES = ${wildcard *.c}
LIB_OBJS = ${patsubst %.c, %.o, ${LIB_SOURCES}}
all:${LIB_OBJS}
${LIB_OBJS}:${LIB_SOURCES}
${CC} ${CFLAGS} $