1

我有两个 qt .pro 文件,都使用 lib TEMPLATE 和 staticlib CONFIG。第一个库(我们称之为“核心”)是第二个库的依赖项(我称之为“foo”)。其实 foo 中有一个类扩展了 core 中的一个类,我将这个类称为 Bar。

当我在另一个项目(不是库)中实例化类(在 foo 中定义和实现,但从核心扩展类(Bar))时,我收到以下链接错误:

    /usr/bin/ld: Undefined symbols:
   Bar::Bar()

基本上,链接器无法在 foo lib 中派生的核心 lib 中找到类,但仅当我在使用这两个库的第三个项目中实例化该类时。这种行为是预期的吗?

问候,丹 O

更新:在使用派生类之前,我通过在第三个项目中直接调用 Bars 构造函数来修复它......有人知道我为什么需要这样做吗?

4

1 回答 1

2

问题是顺序。它与静态库有关。

更改 LIBS 行中库的顺序。

于 2010-03-12T23:32:43.087 回答