2012-02-12 717 views
2

我有一些凌乱的代码,所以我终于分隔成头和来源,但现在我得到136个警告说Qt的未定义的引用

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

和错误

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

我试过QMAKE ,所有的资源都在.pro文件中,重建,清理和删除所有的moc文件。

回答

3

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

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

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