无法使用 qextserialport 声明串口
Can't declare serial port using qextserialport
我看到了几个问题并在谷歌上搜索了很多,但我找不到使用 qextserialport 声明串行端口对象的方法,以便读写 to/from 一个 arduino。我尝试了用户在 How to write on serial port using Qextserialport 中所做的操作,但编译器给出了以下错误:
undefined reference to `QextSerialPort::QextSerialPort(QString const&, QextSerialPort::QueryMode, QObject*)'
这是我使用的代码:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtExtSerialPort/qextserialport.h>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_BTN_Connect_clicked()
{
int index=ui->Selector_Port->currentIndex();
QextSerialPort *port = new QextSerialPort("/dev/ttyACM0");
}
为什么会出现这个错误?我正在使用 Debian 8.2 和 QT 4.8.6
编辑:
添加行后:
CONFIG += qesp_linux_udev
QT += extserialport
到项目文件,我有以下错误:
"Project MESSAGE: Warning: unknown QT: extserialport"
错误消息是由链接器生成的。这意味着它找不到 QextSerialPort
个库二进制文件。
根据QextSerialPort Manual QextSerailPort
在Qt4中只能在兼容模式下使用:
Can be used as static or shared library, or simply integrate the
component into application.
最简单的解决方案就是将 QextSerailPort
与您的主项目一起构建。只需将其包含到您的项目文件中 (.pro
):
include(pathToQesp/compat/qextserialport.pri)
您不需要 QT += extserialport
,因为在 Compat 模式下 它不用作 Qt 模块。
最简单的方法
- 创建一个新文件夹;去吧:
mkdir test && cd test
git clone https://github.com/qextserialport/qextserialport
- 在此文件夹中创建一个新的 Qt 项目,例如名称为
extserialtest
,因此您有两个文件夹:
qextserialport
与 QextSerailPort
包裹
extserialtest
与您的 Qt 项目
- 将行
include (../qextserialport/src/qextserialport.pri)
添加到 extserialtest.pro
- 编写您的项目代码:
#include <qextserialport.h>
和 new QextSerialPort("/dev/ttyACM0");
在 Linux 中的 Qt 4.8.3 上验证它开箱即用。
我看到了几个问题并在谷歌上搜索了很多,但我找不到使用 qextserialport 声明串行端口对象的方法,以便读写 to/from 一个 arduino。我尝试了用户在 How to write on serial port using Qextserialport 中所做的操作,但编译器给出了以下错误:
undefined reference to `QextSerialPort::QextSerialPort(QString const&, QextSerialPort::QueryMode, QObject*)'
这是我使用的代码:
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtExtSerialPort/qextserialport.h>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_BTN_Connect_clicked()
{
int index=ui->Selector_Port->currentIndex();
QextSerialPort *port = new QextSerialPort("/dev/ttyACM0");
}
为什么会出现这个错误?我正在使用 Debian 8.2 和 QT 4.8.6
编辑: 添加行后:
CONFIG += qesp_linux_udev
QT += extserialport
到项目文件,我有以下错误:
"Project MESSAGE: Warning: unknown QT: extserialport"
错误消息是由链接器生成的。这意味着它找不到 QextSerialPort
个库二进制文件。
根据QextSerialPort Manual QextSerailPort
在Qt4中只能在兼容模式下使用:
Can be used as static or shared library, or simply integrate the component into application.
最简单的解决方案就是将 QextSerailPort
与您的主项目一起构建。只需将其包含到您的项目文件中 (.pro
):
include(pathToQesp/compat/qextserialport.pri)
您不需要 QT += extserialport
,因为在 Compat 模式下 它不用作 Qt 模块。
最简单的方法
- 创建一个新文件夹;去吧:
mkdir test && cd test
git clone https://github.com/qextserialport/qextserialport
- 在此文件夹中创建一个新的 Qt 项目,例如名称为
extserialtest
,因此您有两个文件夹:qextserialport
与QextSerailPort
包裹extserialtest
与您的 Qt 项目
- 将行
include (../qextserialport/src/qextserialport.pri)
添加到extserialtest.pro
- 编写您的项目代码:
#include <qextserialport.h>
和new QextSerialPort("/dev/ttyACM0");
在 Linux 中的 Qt 4.8.3 上验证它开箱即用。