c++ - 静态依赖库是否需要包含静态依赖库

标签 c++ qt makefile static-libraries

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

QT       -= gui

TARGET = PdfWrapper
TEMPLATE = lib
CONFIG += staticlib

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

pdf 项目 .pro 文件,当我只包含 lPdfWrapper 库时,它无法正常工作,它给出链接错误 undefined reference

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

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

最佳答案

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

你的库需要的所有动态库,仍然是应用程序所必需的,它链接到你的静态库。

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

关于c++ - 静态依赖库是否需要包含静态依赖库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37708395/

相关文章:

c++ - Qt - 包含 'Utility' 函数的共享库?

c - Travis CI - 无法在 makefile 中运行 `c` 可执行文件

c# - 如何将 vector<double> 从 C++ 编码到 C#

qt - 在 QFileSystemModel() 中列出文件的最佳方法?

multithreading - Qt中临界区的实现

linux - 如何创建配置脚本?

bash - 定义在 Makefile 和 Shell 脚本中使用的变量

c++ - 在 std::set 中查找元素

c++ - Objective-C++ 对 UI 的绝对混淆;最佳实践

java - JNI 分配损坏的堆