Qt未定义参考

时间:2012-02-12 05:39:46

标签: c++ qt mingw qt-creator

我有一些凌乱的代码,所以我最终把它分成了标题和来源,但现在我得到了136条警告说

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

和错误

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

我尝试过QMake,所有来源都在.pro文件中,重建,清理和删除所有moc文件。

1 个答案:

答案 0 :(得分:3)

第一个问题在于内联函数。如果您熟悉模板功能,则内联函数具有相同的要求。他们需要在头文件中包含他们的实现细节,以便编译器可以在其包含在其他地方时生成内联代码。您无法在常规.cpp文件中实现。

至于第二个问题,如果Widget::Widget()指的是QWidget类并且没有从错误日志中复制粘贴,我猜这意味着你的代码没有正确链接反对QtGui图书馆。确保.pro文件没有删除它的行,因为默认情况下包含它(也就是说,你不想要一行说QT -= gui)。

如果那不是问题而且Widget类找不到Widget(QWidget*)构造函数是你自己的类,那么问题可能只是小部件中没有实现。Widget::Widget(QWidget*)函数的.cpp文件。