我创建了一个静态库(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
有人可以解释我这是必要的吗?如果是为什么?
答案 0 :(得分:1)
当您将库编译为静态时,这意味着只会静态链接您的库,因此应用程序不需要您的库的.lib文件。
应用程序仍然需要lib所需的所有动态库,该应用程序与静态库链接。
为了在库中包含所有依赖项,您应该将库与test1,test2,test3的静态版本链接。