由于未定义的QSerialPortInfo方法引用而无法编译

时间:2014-10-06 18:51:35

标签: c++ qt qt5.3

我在Qt Creator上遇到QSerialPortInfo的奇怪问题。为了说明问题尽可能简单,让我们看看这个小代码片段。

的.pro

我当然包括CONFIG += serialport

的main.cpp

#include <QGuiApplication>
#include <QTimer>
#include <QtSerialPort/QSerialPort>
#include <QtSerialPort/QSerialPortInfo>

int main(int argc, char *argv[])
{
    QGuiApplication a(argc, argv);

    QList<QSerialPortInfo> ports = QSerialPortInfo::availablePorts();
    QList<QSerialPortInfo>::iterator i;
    for(i = ports.begin(); i != ports.end(); i++)
    {
    printf("Port:\n");
    printf(" - Name: %s\n", (*i).portName().toStdString().data());
    printf(" - Description: %s\n", (*i).description().toStdString().data());
    printf(" - Manufacturer: %s\n", (*i).manufacturer().toStdString().data());
    printf(" - Serial number: %s\n", (*i).serialNumber().toStdString().data());
    printf(" - System location: %s\n", (*i).systemLocation().toStdString().data());
    printf("\n");

    QTimer::singleShot(0, QCoreApplication::instance(), SLOT(quit()));
    return a.exec();
}

这是一个非常简单的示例,说明如何在系统中查询连接到它的设备,但是当我在QtCreator上编译它时,make会将所有方法报告为未定义。

undefined reference to `QSerialPortInfo::availablePorts()'
undefined reference to `QSerialPortInfo::portName() const'
undefined reference to `QSerialPortInfo::description() const'
undefined reference to `QSerialPortInfo::manufacturer() const'
undefined reference to `QSerialPortInfo::serialNumber() const'
undefined reference to `QSerialPortInfo::systemLocation()'

还尝试#include <QtSerialPort/qserialportinfo.h>确定,但没有变化。

我也查看了Qt源文件夹下的QSerialPort文件,我相信我已经包含了所有必要的引用。

我感到困惑,不知道自己错过了什么。

1 个答案:

答案 0 :(得分:6)

试试这个:

QT += serialport

而不是:

CONFIG += serialport

链接:http://doc.qt.io/qt-5/qserialportinfo.html