Qt静态库未定义参考

时间:2020-05-26 15:58:37

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

我有这种情况:

  • 没有依赖项的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类的未定义引用。

我该如何解决?谢谢

1 个答案:

答案 0 :(得分: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