2014-10-06 396 views
0

我在Qt Creator上面臨QSerialPortInfo的一個奇怪問題。爲了說明這個問題儘可能簡單,讓我們看看這個小代碼片段。由於未定義的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>可以肯定,但沒有變化。

我也看了一下,QTS源文件夾下存在QSerialPort文件,我相信我已經包含了所有必要的參考。

我很困惑,不知道我錯過了什麼。

回答

6

試試這個:

QT += serialport 

,而不是這樣的:

CONFIG += serialport 

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

+0

行動是我不好。完全錯過了'QT + = serialport',即使我整個時間都從我那裏加載了文檔,謝謝您指出。我錯過了我的咖啡:-) – 2014-10-06 19:02:01

+0

@FábioAntunes歡迎您:) – Chernobyl 2014-10-06 19:11:37

+0

@Chernobyl,我有同樣的錯誤。我這樣做,但這些錯誤顯示:項目MESSAGE:警告:未知QT:serialport 項目MESSAGE:警告:未知QT:serialport – 2017-02-12 11:09:21

相關問題