QT Q_PROPERTY ошибка: сбой команды компоновщика с кодом выхода 1 (используйте -v для просмотра вызова)

Я попытался установить свойство так, чтобы значение переменной было изменено, будет вызвана функция:

Класс DataExchange:

#ifndef DATAEXCHANGE_H
#define DATAEXCHANGE_H

#include <QObject>
#include <QDebug>

class DataExchange : public QObject
{
Q_OBJECT
Q_PROPERTY(bool serialOn READ get_serialOn WRITE set_serialOn NOTIFY serialOnChanged)
public:
DataExchange(QObject *parent = 0);
~DataExchange();

bool get_serialOn() const
{
return _serialOn;
}

void set_serialOn(bool value)
{
if (value != _serialOn)
{
_serialOn = value;
emit serialOnChanged(_serialOn);
}
}signals:
void serialOnChanged(bool);
private:
bool _serialOn;

};

#endif // DATAEXCHANGE_H

DataExchange.cpp

DataExchange::DataExchange(QObject *parent) :
QObject(parent)
{}
DataExchange::~DataExchange() { }

MainFrame:

class MainWindow : public QMainWindow
{
Q_OBJECT

public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
...
DataExchange *deHandle;
};

MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
removeToolBar(ui->mainToolBar);
deHandle = new DataExchange;
}

Но это дает ошибку:

error: linker command failed with exit code 1 (use -v to see invocation)

Откуда эта ошибка и как ее решить?

0

Решение

Я загрузил код, который похож на ваш, но у меня нет проблем: github.com/eyllanesc/stackoverflow/tree/master/Test — eyllanesc

Это хороший пример. Но после внесения изменений необходимо: очистить проект -> запустить qmake -> …

Тогда это будет наконец работать.

Ранее я только чистил проект и перестраивал проект, который как-то не решал проблему.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]