c语言创建.a库和调用.a库的makefile编写问题
makefile中如何写?linux环境生成.a库的makefile我是这样写的:.SUFFIXES:.c.oCC=gccOSA=/data/users/osaINCDI...
makefile中如何写?linux环境
生成.a库的makefile我是这样写的:
.SUFFIXES: .c .o
CC =gcc
OSA=/data/users/osa
INCDIR=-I. -I$(OSA)/api
DEBUG = -g
C++FLAGS = -c $(DEBUG)
LIBS = -lpthread
LIB_DIR=/data/users/osa/api/
#PKIOBJ=PKITool.o kdmd5.o
LIB=libapi.a
PKIOBJ=api.o
.c.o:
$(CC) $(C++FLAGS) $(INCDIR) $*.c
all: PKITool clean
PKITool:$(PKIOBJ)
ar ruv $(LIB_DIR)$(LIB) *.o
ranlib $(LIB_DIR)$(LIB)
clean:
rm *.o
生成了libapi.a库函数。
调用该库函数的makefile我是这样写的:但是报错找不到.a里面的函数。
.SUFFIXES: .c .o
CC =gcc
OSA=/data/users/osa
INCDIR=-I. -I$(OSA)/api -L$OSA/api/test
DEBUG = -g
C++FLAGS = -c $(DEBUG)
LIBS = -lpthread
#PKIOBJ=PKITool.o kdmd5.o
PKIOBJ=test.o
.c.o:
$(CC) $(C++FLAGS) $(INCDIR) $*.c
all: PKITool clean
PKITool:$(PKIOBJ)
$(CC) $(DEBUG) -o test $(PKIOBJ) $(LIBS)
clean
rm -f *.o
请问这两个makefile是不是哪里写的不对,改怎么修改?多谢 展开
生成.a库的makefile我是这样写的:
.SUFFIXES: .c .o
CC =gcc
OSA=/data/users/osa
INCDIR=-I. -I$(OSA)/api
DEBUG = -g
C++FLAGS = -c $(DEBUG)
LIBS = -lpthread
LIB_DIR=/data/users/osa/api/
#PKIOBJ=PKITool.o kdmd5.o
LIB=libapi.a
PKIOBJ=api.o
.c.o:
$(CC) $(C++FLAGS) $(INCDIR) $*.c
all: PKITool clean
PKITool:$(PKIOBJ)
ar ruv $(LIB_DIR)$(LIB) *.o
ranlib $(LIB_DIR)$(LIB)
clean:
rm *.o
生成了libapi.a库函数。
调用该库函数的makefile我是这样写的:但是报错找不到.a里面的函数。
.SUFFIXES: .c .o
CC =gcc
OSA=/data/users/osa
INCDIR=-I. -I$(OSA)/api -L$OSA/api/test
DEBUG = -g
C++FLAGS = -c $(DEBUG)
LIBS = -lpthread
#PKIOBJ=PKITool.o kdmd5.o
PKIOBJ=test.o
.c.o:
$(CC) $(C++FLAGS) $(INCDIR) $*.c
all: PKITool clean
PKITool:$(PKIOBJ)
$(CC) $(DEBUG) -o test $(PKIOBJ) $(LIBS)
clean
rm -f *.o
请问这两个makefile是不是哪里写的不对,改怎么修改?多谢 展开
4个回答
2008-06-17
展开全部
我在你调用库函数的makefile里没有看到你对libapi.a库的包含,就像你包含动态库用-lpthread一样,你需要包含一下libapi.a静态库,只是它的包含不需要在前面加-l或-L,直接把你的libapi.a的路径和名字加上即可。
形如 gcc -g -c test test.o -lpthread ./libapi.a
形如 gcc -g -c test test.o -lpthread ./libapi.a
展开全部
sdg
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
ff
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
aaaaaaaaaaaassssssssssssssdddddddddddddddd
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询