C++ 是否需要包含静态依赖库的静态依赖库

C++ 是否需要包含静态依赖库的静态依赖库,c++,qt,makefile,static-libraries,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}/dependenc

我已经创建了一个静态库(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 project.pro文件当我只包含lPdfWrapper库时,它不工作,给出链接错误未定义引用

QT       -= gui

TARGET = Pdf
TEMPLATE = app
LIBS += -L$${PWD}/dependencies -lPdfWrapper
带有lPdfWrapper库及其依赖项的pdf project.pro文件开始工作

QT       -= gui

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

谁能解释一下这有必要吗?如果这是为什么?

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

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


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

我无法理解您的问题。如果您可以显示目录结构(
tree
output)、所有
Makefile
内容以及调用的
make
命令,则可能会有所帮助。您期望的是什么?与您看到的有什么不同?谢谢您的回复。在构建静态库时,它是否包含依赖库?我像我的库一样思考。a包含test1.a、test2.a、test3.a