sdhdsf132452
吴天德少侠
2017-11-15 13:41

QT中编译时出现的undefined reference to 的问题

  • 串口通信
  • qt学习

我在用QT creator想写一个串口通信程序时,跟很多人一样也是
D:\documents\HelloSerialPort\mainwindow.cpp:20: error: undefined reference to SPComm::isOpen() const
D:\documents\HelloSerialPort\debug\mainwindow.o:-1: In function `ZN10MainWindow23on_pushButton_2_clickedEv':
D:\documents\HelloSerialPort\mainwindow.cpp:30: error: undefined reference to `SPComm::isOpen() const'
看网上说是在pro文件中添加类所在的目录,可是我怎么知道它是哪个目录呢?完全不懂啊,求教!下面是我的文件

//mainwindow.h

 #ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include "SPComm.h"

namespace Ui {
class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

private slots:
    void on_pushButton_clicked();

    void on_pushButton_2_clicked();

private:
    Ui::MainWindow *ui;
    SPComm *m_spcomm;
};

#endif // MAINWINDOW_H

spcomm.h

 #ifndef SPCOMM_H
#define SPCOMM_H

#include <QObject>
#include <QtSerialPort/QtSerialPort>

class SPComm : public QObject
{
    Q_OBJECT
public:
    explicit SPComm(QObject *parent = 0);

    ~SPComm();
    bool isOpen() const;

        void setPortName(const QString &name);
        QString portName() const;

        void setBaudRate(int baudRate);
        int baudRate() const;

        virtual bool open();
        virtual void close();
        virtual bool clear();

        int readData(char *buffer, int count, int timeout = 1000);
        int writeData(char *data, int size);
        int write(char ch);

    protected:
        QString m_portName;
        int m_baudRate;
        QSerialPort *m_serialPort;
signals:

public slots:
};

#endif // SPCOMM_H
  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

5条回答