qt错误信息

问题:qt qmake报错:
:-1: error: File Makefile.Debug doesn't exist.
原因:.pro中使用子目录使用工程时,TEMPLATE = subdirs,写成了SUBDIRS,导致以上错误;所以要根据提示去查找错误,必要时去查看makefile文件,发现确实不一样;
如何通过观察现象,从而分析问题原因很重要;
正确写法如下:
TEMPLATE = subdirs
SUBDIRS += src

CONFIG(debug,debug | release){
SUBDIRS +=

}

问题2:错误信息:
ElectricityThread.obj:-1: error: LNK2001: 无法解析的外部符号 "public: virtual struct QMetaObject const * __thiscall ElectricityThread::metaObject(void)const " (?metaObject@ElectricityThread@@UBEPBUQMetaObject@@XZ)
原因:.pro工程文件中导入时只导入了.cpp文件,没有导入对应的.h文件导致错误;
3,注意不要用中间变量连续赋值,会出现问题;
例如:
QString strSN = "ff";
QByteArray ba = strSN.toLatin1().data();


3,删除widget,同时删除内部元素;
for(auto it = vec.begin(); it != vec.end(); ++it)
{
if(*it != nullptr)
{
delete (*it);
(*it) = nullptr;
}
}
std::vector<Widget*>().swap(vec); //清除容器并最小化它的容量,

QT中一些错误处理总结:
1,如果出现一些引用错误啥的@@这种情况,试一下把生成的中间文件obj文件,moc_xx.cpp文件统统删除后,再次编译。
一些莫名其妙的问题,可能都是这个原因。应该是编译方面的问题导致如此的。
2,
:-1: error: LNK2019: 无法解析的外部符号 "public: virtual __thiscall ClearContentLineEdit::~ClearContentLineEdit(void)" (??1ClearContentLineEdit@@UAE@XZ),该符号在函数 "public: virtual void * __thiscall ClearContentLineEdit::`scalar deleting destructor'(unsigned int)" (??_GClearContentLineEdit@@UAEPAXI@Z) 中被引用
比如这个就是只声明虚函数,未实现报的错误。可以观察输出结构可以得到;所以不要盲目去找答案,先去找线索;

怕什么真理无穷,进一寸有一寸的欢喜。---胡适
原文地址:https://www.cnblogs.com/hujianglang/p/12403410.html