QT错误:collect2:ld returned 1 exit status

今天一大早,就被一个错误困扰了N久。。。


collect2:ld returned 1 exit status



怎么看,代码都没错,一直郁闷,不得已才一点一点的注释排错。。。

后来才发现,是声明了一个私有槽,没有在.cpp文件中去实现它。。。最终酿成大错。。。。

接着就把没用的私有槽的声明注释掉。。。终于可以运行了。。。。


!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


后来百度查了一下,原来这种错误不止有一种原因!!不同错误,报同一个警告!!这太坑爹了吧。。

接下来就总结一下,我遇到的情况和百度大神们遇到情况:


第一种情况,就是我遇到的情况:.h文件中相关的槽函数已经声明,但是.cpp并没有把它实现(其他的函数,有声明没定义,也会报错。。。)

解决的办法:注释掉声明,或者在.cpp文件中把它实现了!


第二种情况,已经有本项目的实例在后台运行了,此时再编译运行,就会提示上面的错误。(这种情况主要是main函数中没有调用窗体,使得程序是在后台执行,没有显示在前台上)

解决的办法:用任务管理器 kiil 掉相应的.exe进程,或者直接关闭Qt Creator


第三种情况,也是最常见的情况,遗漏掉相应的头文件。

解决的办法:细心查找有哪些函数没有引用库文件,include 进来吧!


第四种情况,pro工程文件没有添加相应的QT+=......,

解决的办法,pro工程文件中添加 相应的QT += ,如我用到了QSocket之类的,就在pro中添加QT += network


还有其他不常见的情况,还待发现。。。



你可能感兴趣的:(Qt,错误处理)