我有一些凌乱的代码,所以我最终把它分成了标题和来源,但现在我得到了136条警告说
inline function 'void suchandsuch()' used but never defined
和错误
undefined reference to 'Widget::Widget(QWidget*)'
我尝试过QMake,所有来源都在.pro文件中,重建,清理和删除所有moc文件。
答案 0 :(得分:3)
第一个问题在于内联函数。如果您熟悉模板功能,则内联函数具有相同的要求。他们需要在头文件中包含他们的实现细节,以便编译器可以在其包含在其他地方时生成内联代码。您无法在常规.cpp文件中实现。
至于第二个问题,如果Widget::Widget()
指的是QWidget
类并且没有从错误日志中复制粘贴,我猜这意味着你的代码没有正确链接反对QtGui图书馆。确保.pro文件没有删除它的行,因为默认情况下包含它(也就是说,你不想要一行说QT -= gui
)。
如果那不是问题而且Widget
类找不到Widget(QWidget*)
构造函数是你自己的类,那么问题可能只是小部件中没有实现。Widget::Widget(QWidget*)
函数的.cpp文件。