【发布时间】:2009-09-20 20:44:24
【问题描述】:
我有两个 qt .pro 文件,都使用 lib TEMPLATE 和 staticlib CONFIG。第一个库(我们称之为“核心”)是第二个库的依赖项(我称之为“foo”)。其实foo里面有一个类继承了core里面的一个类,我把这个类叫做Bar。
当我在另一个项目(不是 lib)中实例化类(在 foo 中定义和实现,但从核心扩展类(Bar))时,我收到以下链接错误:
/usr/bin/ld: Undefined symbols:
Bar::Bar()
基本上,链接器在核心库中找不到从 foo 库派生的类,但只有当我在使用这两个库的第三个项目中实例化该类时。这是预期的行为吗?
问候, 丹欧
更新:在使用派生类之前,我通过在第三个项目中直接调用 Bars 构造函数来修复它...有人知道我为什么需要这样做吗?
【问题讨论】:
标签: c++ linker static-libraries qmake