我的这个环境是嵌入式Linux Ubuntu 22.04.3 LTS
on ARM aarch64
。Qt交叉编译的程序在此环境运行提示没有serialbus
对应的动态链接库。
前后试了好几种方法,一开始想直接在此环境安装qt creator编译。
$ sudo apt-get install qtcreator
发现这样安装后还是缺这个模块。在网上查询后又得到两个方法。
方法一:查看并安装下列包
这里主要是要知道qt5模块的包名。
$ sudo apt list --installed | grep libqt5
libqt5serialbus5-dev/focal,now 5.12.8-0ubuntu1 arm64 [已安装]
libqt5serialbus5-plugins/focal,now 5.12.8-0ubuntu1 arm64 [已安装,自动]
libqt5serialbus5/focal,now 5.12.8-0ubuntu1 arm64 [已安装]
libqt5serialport5-dev/focal,now 5.12.8-0ubuntu1 arm64 [已安装]
libqt5serialport5/focal,now 5.12.8-0ubuntu1 arm64 [已安装]
# 如果没有安装就安装一下包
$ sudo apt-get install libqt5serialbus5 libqt5serialbus5-dev
方法二:下载Qt对应模块源码编译安装
Qt 全部源码编译是很耗时的,特别对于嵌入式设备。只要下载编译需要的模块即可。不过由于方法一已解决我的问题,方法二没有尝试,在此记录一下。
$ ./configure # 需要配置参数,参数含义可以使用./configure -help查看
$ make -j4 # -j<core> 根据cpu core数设定
$ make install
# e.g. 编译安装qtserialport
$ tar Jxvf qtserialport-everywhere-src-5.12.10.tar.xz
$ cd qtserialport-everywhere-src-5.12.10
$ mkdir build
$ cd build
$ qmake ..
$ make && make install