在 Ubuntu 中使用 QSerialport 时遇到问题

Posted

技术标签:

【中文标题】在 Ubuntu 中使用 QSerialport 时遇到问题【英文标题】:Trouble using QSerialport in Ubuntu 【发布时间】:2016-01-13 04:02:11 【问题描述】:

我在我的 Mac 上用 QT creator 制作了一个完整的应用程序(经过测试和工作),现在需要将源代码移动到我的 Ubuntu 机器上并在 ubuntu 的 QT creator 中重新编译它。

这个问题是在项目打开后我在“一般消息”日志中得到这个错误

Project ERROR: Unknown module(s) in QT: serialport

所以我假设 QSerialport 不包含在 QT creator 的 ubuntu 版本中。

我尝试使用从安装 QSerialport 的教程中获得的这些终端命令自己获取它(我根本不了解 linux,这是我第一次使用它)。

git clone git://code.qt.io/qt/qtserialport.git

cd qtserialport

git checkout qt5.x.y 这就是我卡住的地方。我尝试用 'x' 和 'y' 代替每个数字,并返回找不到这样的文件。

我犯了一些简单的错误吗?有没有人必须这样做?

【问题讨论】:

【参考方案1】:

你自己试试这个:

git clone git://code.qt.io/qt/qtserialport.git
mkdir qtserialport-build
cd qtserialport-build
qmake ../qtserialport/qtserialport.pro
sudo make install

【讨论】:

您好,感谢您的帮助。 sudo make install 命令给出了这个错误。 compilation terminated. make[2]: *** [.obj/qserialport.o] Error 1 make[2]: Leaving directory /home/mattpamenter/qtserialport-build/src/serialport' make[1]: *** [sub-serialport-install_subtargets] 错误2 make[1]: 离开目录/home/mattpamenter/qtserialport-build/src' make: *** [sub-src-install_subtargets] Error 2 只在“sudo make install”之前尝试“make” 这也失败了,同样的消息。 另外值得注意的是,我现在已经在我的 mac 上的 Ubuntu 虚拟机上尝试了这个。以及在迷你电脑上正常安装的 ubuntu。同样的错误。 在 Linux 系统上,您需要 libudev 来构建它,通过以下方式安装它:“apt-get install libudev-dev” 如果不起作用,请发布完整的构建错误。【参考方案2】:

在 Ubuntu 包 repo 中列出的是 libqt5serialport 包,因此它应该可用,但您可能需要手动安装该包:http://packages.ubuntu.com/trusty/libqt5serialport5

【讨论】:

【参考方案3】:

找到解决方案:

如果其他人遇到此问题,请打开“维护 QT”(可在安装文件夹中找到)。选择“添加或删除组件”。在您安装的 QT 版本中,有一个名为“源组件”的子标题,在“附加组件”类别中,您需要选择 Qserialport”。然后点击下一步并安装。

此后一切正常。

【讨论】:

以上是关于在 Ubuntu 中使用 QSerialport 时遇到问题的主要内容,如果未能解决你的问题,请参考以下文章

Qt 串口类QSerialPort 使用笔记

Qt 串口类QSerialPort 使用笔记

为啥我可以在 Qt 5.5.1 中使用 QSerialPort* 作为临时变量而不是作为类的成员?

如何使用 pyqtgraph 和 QSerialPort 创建实时图?

Qt4安装使用QSerialPort

为啥 QSerialPort::writeData 使用单次计时器开始写入?