我有两个qt .pro文件,都使用lib TEMPLATE和staticlib CONFIG。第一个库(我们称之为'核心')是第二个库的依赖(我将其称为'foo')。事实上,foo中的一个类扩展了一个类的核心,我将这个类称为Bar。
当我在另一个项目(而不是lib)中实例化类(在foo中定义并实现,但从核心扩展一个类(Bar)时),我得到以下链接错误:
/usr/bin/ld: Undefined symbols:
Bar::Bar()
基本上,链接器无法在foo lib中派生的核心库中找到类,但仅当我在使用两个库的第三个项目中实例化类时。预期会出现这种情况吗?
此致 Dan O
更新:我在使用派生类之前通过直接调用第三个项目中的Bars构造函数来修复它...有谁知道为什么我需要这样做?
答案 0 :(得分:2)
问题在于订单。它与静态库有关。
更改LIBS行中库的顺序。