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是不是哪里写的不对,改怎么修改?多谢
展开
 我来答
匿名用户
2008-06-17
展开全部
我在你调用库函数的makefile里没有看到你对libapi.a库的包含,就像你包含动态库用-lpthread一样,你需要包含一下libapi.a静态库,只是它的包含不需要在前面加-l或-L,直接把你的libapi.a的路径和名字加上即可。

形如 gcc -g -c test test.o -lpthread ./libapi.a
美国老大爷
2008-06-18 · TA获得超过487个赞
知道小有建树答主
回答量:1365
采纳率:0%
帮助的人:951万
展开全部
sdg
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
linyuhua730
2008-06-18 · TA获得超过128个赞
知道答主
回答量:337
采纳率:0%
帮助的人:100万
展开全部
ff
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
卡琦猫
2008-06-21
知道答主
回答量:37
采纳率:0%
帮助的人:0
展开全部
aaaaaaaaaaaassssssssssssssdddddddddddddddd
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式