静态lib链接另一个静态库和qmake?奇怪的链接错误

时间:2009-09-20 20:44:24

标签: c++ linker static-libraries qmake

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

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

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

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

此致 Dan O

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

1 个答案:

答案 0 :(得分:2)

问题在于订单。它与静态库有关。

更改LIBS行中库的顺序。