Qt 创建者中的“collect2:ld 返回 1 个退出状态”

Posted

技术标签:

【中文标题】Qt 创建者中的“collect2:ld 返回 1 个退出状态”【英文标题】:"collect2: ld returned 1 exit status" in Qt creator 【发布时间】:2012-02-14 00:26:48 【问题描述】:

当我编译我的程序时,我得到ld returned 1 exit status 错误。这是代码(ma​​in.cpp):

#include <QtGui/QApplication>
#include <QPushButton>
#include <QHBoxLayout>
#include <QLineEdit>
#include "widget.h"

int main(int argc, char *argv[])

QApplication app(argc, argv);

QPushButton *okayButtom = new QPushButton("Okay");

QMainWin *mainWin = new QMainWin("Say Pig!");
QHBoxLayout *Hbox = new QHBoxLayout;
QLineEdit *inputBox = new QLineEdit;


mainWin->setWindowTitle("Hello, Pig!");
Hbox->addWidget(inputBox);
Hbox->addWidget(okayButtom);

mainWin->setLayout(Hbox);
mainWin->show();

return app.exec();

这是 widget.h

#ifndef WIDGET_H
#define WIDGET_H

#include <QtGui>

class QMainWin : public QWidget

Q_OBJECT
private:
QString WinTitle;
public:
QMainWin(const QString &title, QWidget *parent = 0):WinTitle(title)

    this->setWindowTitle(WinTitle);


~QMainWin();
;

#endif // WIDGET_H

我没有使用UI文件,我只使用cpp源文件。

【问题讨论】:

您可以粘贴“编译输出”窗格中的所有内容吗?那里可能有一些有用的错误消息 小贴士:永远不要给自己的任何类起一个以大写 Q 开头,后跟另一个大写字母的名称。这是 Qt 的约定,您一定会在某些时候遇到名称冲突;对于查看您的代码的任何人来说,这也很令人困惑。 您的主要问题是 Q_OBJECT 宏。去掉它。我说的对吗? 【参考方案1】: 为析构函数定义一个主体或删除声明~QMainWin(); 删除宏 Q_OBJECT; 在初始化列表中添加QWidget(parent) 构造函数。

阅读此http://doc.trolltech.com/4.3/tutorial-t4.html

【讨论】:

以上是关于Qt 创建者中的“collect2:ld 返回 1 个退出状态”的主要内容,如果未能解决你的问题,请参考以下文章

错误:未找到架构 x86_64 的符号,collect2:ld 返回 1 退出状态

错误消息:在 crt1.10.6.ol 开始 ld:找不到符号 collect2:ld 返回 1 个退出状态

在使用 Qt 创建者创建一个非常简单的项目时遇到 Qt 中的“分段错误”

构建文件夹中的 Qt 创建者多重定义

在 QT 创建者中,如何自动为 cpp 文件或整个项目中的所有方法添加断点?

Qt Creator中的OpenCV:无法连接创建者通信套接字/tmp/qt_temp.T32147/stub-socket:没有这样的文件或目录