【问题标题】:Qt static libraries undefined referenceQt 静态库未定义引用
【发布时间】:2020-05-26 15:58:37
【问题描述】:

我有这种情况:

  • 没有依赖关系的 libA.a
  • 依赖于 libA.a 的 libB.a
  • 依赖于 libA.a 的 libC.a

在 B.pro 我有

LIBS += -lA

在 C.pro 我有

LIBS += -lA

在 app.pro 我有

LIBS += -lA
LIBS += -lB
LIBS += -lC

但是当我编译时,链接器给了我在 libB 和 libC 中使用的 libA 类的未定义引用。

我该如何解决这个问题?谢谢

【问题讨论】:

  • 是的,我正在使用 QtCreator
  • 我也遇到了类似的问题,通过改变LIBS的顺序解决了。

标签: c++ qt qt-creator static-libraries


【解决方案1】:

LIBS += -lA 在 B.pro 和 C.pro 中被忽略。该选项仅适用于链接器,即构建共享库或可执行二进制文件。

要解决未定义引用的问题,请重新排序 app.pro 中的库。依赖库的顺序确实很重要。见The order in which interdependent linked libraries are specified is wrong.

LIBS += -lB
LIBS += -lC
LIBS += -lA

【讨论】:

    猜你喜欢
    • 2016-08-04
    • 2020-12-16
    • 1970-01-01
    • 2011-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-15
    • 2016-09-20
    相关资源
    最近更新 更多