无法使用 qextserialport 声明串口
Can't declare serial port using qextserialport
我看到了几个问题,谷歌了很多,我找不到一种方法来声明一个串口对象使用qextserialport,为了读写/从arduino。我尝试了用户在如何使用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, Qt4中的QextSerailPort
只能在Compat Mode:
可以用作静态库或共享库,也可以简单地集成
最简单的解决方案是与您的主要项目一起构建QextSerailPort
。只需将其包含到您的项目文件(.pro
):
include(pathToQesp/compat/qextserialport.pri)
您不需要QT += extserialport
,因为在比较模式下它不被用作Qt模块。
最简单的方法
- 创建新文件夹;点击:
mkdir test && cd test
-
git clone https://github.com/qextserialport/qextserialport
- 在这个文件夹中创建一个新的Qt项目,例如名称为
extserialtest
,这样你就有两个文件夹:-
qextserialport
withQextSerailPort
package -
extserialtest
与您的Qt项目
-
- 将
include (../qextserialport/src/qextserialport.pri)
行添加到extserialtest.pro
写你的项目代码:
#include <qextserialport.h>
和new QextSerialPort("/dev/ttyACM0");
在Linux的Qt 4.8.3上验证,它可以开箱即用
相关文章:
- 为什么我要从串口读取垃圾?
- Boost Asio SerialPort。无法创建并打开串口服务
- 如何在QtWidget中使用c++串口发送数据
- 如何插入十六进制值并发送到串口?
- 串口打开返回 EAGAIN
- QT 5.10.1 串口不发送,为什么?
- 通过串口发送后无法获取原始值
- C++ / RS232C 串口 / 事件回调异步读取缓冲区 / 不使用线程
- 串口读取功能的通信超时和线程不超时
- QT 5.7 串口读取速度很慢
- 串口通信
- 为什么Qt(4.8)串口(qextserialport)分两部分从设备读取数据
- 将C++串口奇偶校验更改代码从 Linux 移植到 Windows
- qt串口未打开
- 有没有一个跨平台的c++串口库可以枚举端口
- Qt串口,当我写的时候,我看不懂我写的东西
- 是否可以检查串口是空闲还是占用
- 无法将简单的读/写串口代码从 boost::asio::serial_port 迁移到 QSerialPort
- 通过c++中的串口发送数据
- 无法使用 qextserialport 声明串口