当前位置: 技术问答>linux和unix
关于makefile的问题:如果一个目标的两个以上的依赖文件都需要引用相同的库函数该怎么写?
来源: 互联网 发布时间:2015-07-18
本文导语: 如果一个目标的两个以上的依赖文件都需要引用相同的库函数该怎么写? 如: INCLUDES= -I/usr/include/mysql/ LIBS= -lmysqlclient -lz -lm -lnsl a.o: a.c b.c gcc $(INCLUDES) $(LIBS) -c a.c b.c a.c有函数fa,b.c有函数fb...
如果一个目标的两个以上的依赖文件都需要引用相同的库函数该怎么写?
如:
INCLUDES= -I/usr/include/mysql/
LIBS= -lmysqlclient -lz -lm -lnsl
a.o: a.c b.c
gcc $(INCLUDES) $(LIBS) -c a.c b.c
a.c有函数fa,b.c有函数fb,两个函数都用到了变量INCLUDES和LIBS所定义的库,同时fa调用了fb。现在的问题是:在a.c中认不出fb返回值,估计是由于对库函数的使用引起的,不知道gcc后面该怎么写才能正确。
如:
INCLUDES= -I/usr/include/mysql/
LIBS= -lmysqlclient -lz -lm -lnsl
a.o: a.c b.c
gcc $(INCLUDES) $(LIBS) -c a.c b.c
a.c有函数fa,b.c有函数fb,两个函数都用到了变量INCLUDES和LIBS所定义的库,同时fa调用了fb。现在的问题是:在a.c中认不出fb返回值,估计是由于对库函数的使用引起的,不知道gcc后面该怎么写才能正确。
|
INCLUDES= -I/usr/include/mysql/
LIBS= -lmysqlclient -lz -lm -lnsl
all: a.o b.o
gcc $(INCLUDES) $(LIBS) -o run a.o b.o
a.o: a.c
gcc $(INCLUDES) -c a.c
b.o: b.c
gcc $(INCLUDES) -c b.c
LIBS= -lmysqlclient -lz -lm -lnsl
all: a.o b.o
gcc $(INCLUDES) $(LIBS) -o run a.o b.o
a.o: a.c
gcc $(INCLUDES) -c a.c
b.o: b.c
gcc $(INCLUDES) -c b.c
|
先把a.c和b.c分别编译成.o文件,最后再链接库编译成可执行文件.