是否有必要包含静态依赖库的静态依赖库

时间:2016-06-08 16:46:58

标签: c++ qt makefile static-libraries

我创建了一个静态库(libPdfWrapper.a),它将使用它依赖库,然后我在pdf项目中使用libPdfWrapper.a,但它寻找libPdfWrapper.a依赖项也认为它是静态库。

libPdfWrapper.a .pro文件,其中包含test1,test2,test3依赖静态库

QT       -= gui

TARGET = PdfWrapper
TEMPLATE = lib
CONFIG += staticlib

LIBS += -L$${PWD}/dependencies -ltest1 -ltest2 -ltest3

pdf项目.pro文件,当我只包含lPdfWrapper库时,它无法正常工作,因为链接错误未定义参考

QT       -= gui

TARGET = Pdf
TEMPLATE = app
LIBS += -L$${PWD}/dependencies -lPdfWrapper

带有lPdfWrapper库的pdf项目.pro文件及其依赖项开始工作

QT       -= gui

TARGET = Pdf
TEMPLATE = app
LIBS += -L$${PWD}/dependencies -lPdfWrapper -ltest1 -ltest2 -ltest3

有人可以解释我这是必要的吗?如果是为什么?

1 个答案:

答案 0 :(得分:1)

当您将库编译为静态时,这意味着只会静态链接您的库,因此应用程序不需要您的库的.lib文件。

应用程序仍然需要lib所需的所有动态库,该应用程序与静态库链接。

为了在库中包含所有依赖项,您应该将库与test1,test2,test3的静态版本链接。

相关问题