Qt未定义的引用问题

3

我有一些混乱的代码,所以我最终将其分成头文件和源文件,但现在我收到了136个警告,内容如下:

inline function 'void suchandsuch()' used but never defined

和错误

undefined reference to 'Widget::Widget(QWidget*)'

我尝试使用QMake,所有的源代码都在.pro文件中,重建、清理和删除所有moc文件。

1个回答

3
第一个问题在于内联函数。如果您熟悉模板函数,那么内联函数具有相同的要求。它们需要在头文件中包含其实现细节,以便编译器可以在其他地方包含时生成内联代码。您不能在常规的 .cpp 文件中实现它们。
至于第二个问题,如果 Widget::Widget() 是指 QWidget 类,并且不是从错误日志中复制粘贴的,我猜测这意味着您的代码没有正确链接 QtGui 库。确保 .pro 文件没有删除它的行,因为默认情况下会包含它(也就是说,您不希望有一行写着 QT -= gui)。
如果这不是问题,而且找不到一个自己类的 Widget(QWidget*) 构造函数,那么问题可能只是 widget 的 .cpp 文件中没有 Widget::Widget(QWidget*) 函数的实现。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接