来源:蜘蛛抓取(WebSpider)
时间:2016-03-12 07:30
标签:
ld returned 1 exit
Linux(18)
qt学习(15)
在Linux下运行qt程序make时遇到错误collect2:ld returned 1 exit status。在网上求解的时候有人总结说大致可能是三种错误,如下:
1.编译成功的例子在后台执行,有时一闪而过,如果再次build ,则会提示上述错误
解决方法:打开任务管理器,找到相应的exe进程,关闭即可;&&或者直接关闭QtCreator。
2.没有编译成功的情况下,最常见情况是程序本身需要include的头文件被遗漏了
解决方法:细心查找基类所用的头文件,include之后即可。
3..h文件中相关的槽函数在cpp文件中没有定义
解决方法:查找遗漏的槽函数,根据需要,具体的定义。
以上三点来自引用,出处:.cn/s/blog_8ce141f70101pdl8.html
但是我编写的程序既没有定义信号槽,也没有预先运行,所以错误的出处不在这三点之中。然后我把makefile文件删除重新生成编译,但是还是出现相同的错误。但是后来发现,虽然我的程序中没有定义信号和槽函数,但是我使用了宏定义Q_OBJECT,然后放在一起查找,发现果然是这里的问题。但是这是为什么呢,有宏定义又有什么关系呢?Qt的
Q_OBJECT宏由预处理器展开,这个宏里面生命了几个由moc实现的成员函数,如果你没有运行moc程序,或者在链接程序中没有包含moc程序的输出文件,那么就有可能会导致
题目中所出现的错误了。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:30110次
排名:千里之外
原创:67篇
转载:13篇
(1)(3)(27)(10)(2)(5)(8)(1)(7)(7)(10)2013年8月 移动平台大版内专家分月排行榜第二2013年4月 移动平台大版内专家分月排行榜第二
2013年5月 移动平台大版内专家分月排行榜第三
2013年8月 移动平台大版内专家分月排行榜第二2013年4月 移动平台大版内专家分月排行榜第二
2013年5月 移动平台大版内专家分月排行榜第三
2013年8月 移动平台大版内专家分月排行榜第二2013年4月 移动平台大版内专家分月排行榜第二
2013年5月 移动平台大版内专家分月排行榜第三
本帖子已过去太久远了,不再提供回复功能。QT错误:collect2:ld&returned&1&exit&status&(简单总结)
1.编译成功的例子在后台执行,有时一闪而过,如果再次build ,则会提示上述错误。
解决方法:打开任务管理器,找到相应的exe进程,关闭即可;&
或者直接关闭QtCreator。
2.没有编译成功的情况下,最常见情况是程序本身需要include的头文件被遗漏了
解决方法:细心查找基类所用的头文件,include之后即可。
3..h文件中相关的槽函数在cpp文件中没有定义
解决方法:查找遗漏的槽函数,根据需要,具体的定义。
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。