有个静态链接库依赖其它静态链接库的问题

来源:百度知道 编辑:UC知道 时间:2024/06/21 02:18:43
liba.a 里面有test1函数
libb.a 里面的test2函数需要调用test1函数

main.cpp 调用test2函数,编译main时需要 链接 libb.a,是否必须同时链接liba.a,是否有方法不用链接liba.a?
makefile里面相关部分是这样写的,请看看有没有问题

liba.a : a.o
ar rcv $@ $^

libb.a : b.o
ar rcv $@ $^

main : main.o
g++ -o $@ $^ -L./ -lb

%.o : %.cpp
g++ -c -o $@ $^ -g -static

亲测lynnyan的回答在windows vs平台下是行不通的:也就是说必须要连接liba,但是可以不提供liba的头文件,因为main中没有显式调用test1

不需要,如果libb.a已经编译好了,你调用test2的时候,里面就已经包裹test1必须的库

makefile里面相关部分是这样写的,请看看有没有问题