【Linux】Ubuntu14.04虚拟机编译安装qtbase并添加qtserialbus模块

2 篇文章 0 订阅

前言

最近想在Ubuntu14.04虚拟机上编写CAN通信相关的Qt程序,但是随着了解的深入,发现并没有想的简单。首先是Ubuntu14.04的软件库里没有libqt5serialbus5-dev的包,不能像安装libqt5serialport5-dev那样方便;其次是自己的电脑性能不佳,编译Qt源码吃力又耗时。于是,就有了以下的实现方法,模块化编译安装Qt。

一、编译环境

Ubuntu14.04 x86_64虚拟机,已安装以下软件包。

git-core flex bison gnupg gperf build-essential zip gawk curl
zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev
lib32readline6-dev lib32ncurses5 lib32z1 x11proto-core-dev libx11-dev
lib32z1-dev libxml2-utils autoconf automake libtool xsltproc imagemagick
gettext texinfo liballegro4-dev lzop u-boot-tools 
libxkbcommon-dev libxkbcommon-x11-dev

qtbase、qtserialport和qtserialbus的5.12.10版本源码。
源码链接:https://download.qt.io/archive/qt/5.12/5.12.10/submodules/

二、编译安装

1、编译安装qtbase

qtbase是Qt的基础模块,包含了core、widgets、sql和network等模块,只安装它也足够开发常用的Qt应用。

解压qtbase,

xz -dv qtbase-everywhere-src-5.12.10.tar.xz
tar xvf qtbase-everywhere-src-5.12.10.tar

进入qtbase,创建编译文件夹build,进入并创建自动配置脚本autoconfig.sh,

cd qtbase-everywhere-src-5.12.10
mkdir build
cd build
vim autoconfig.sh

自动配置脚本编辑如下,

../configure \
-prefix /opt/qt-5.12.10-x86_64 \
-opensource \
-confirm-license \
-release \
-strip \
-shared \
-c++std c++11 \
-no-opengl \
-no-openssl \
-nomake examples \
-nomake tests \
-recheck-all \

运行脚本,

sh autoconfig.sh

配置完成,结果如下图所示,

在这里插入图片描述

编译安装,

make -j2 && make install

首次编译安装用时约20分钟,若过程没有出现错误,则安装成功。

进入Qt安装目录的bin文件夹下,检查是否安装成功,

cd /opt/qt-5.12.10-x86_64/bin
./qmake -v

有结果如下图所示,说明qtbase编译安装成功了。

在这里插入图片描述

为了方便使用qmake编译安装其他模块,可以把相关路径添加到环境变量,

vim ~/.bashrc

在末尾添加如下,

export QT_HOME=/opt/qt-5.12.10-x86_64
export PATH=${QT_HOME}/bin:$PATH
export LD_LIBRARY_PATH=${QT_HOME}/lib

立即生效,

source ~/.bashrc

到此,qtbase已经安装并配置完成,可以使用命令行来编译Qt程序了。

若使用qmake编译完Qt程序后,运行时出现错误如下图所示,

在这里插入图片描述

且Qt安装目录的plugins/platforms文件夹下缺少libqxcb.so文件,如下图所示,

在这里插入图片描述

这是由于虚拟机的环境缺少xcb相关的依赖,可以尝试安装依赖如下,并重新配置编译安装qtbase,

apt install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev

重装后,查看Qt的plugins/platforms文件夹,有结果如下图所示,则证明可以运行Qt程序了。

在这里插入图片描述

2、编译安装qtserialport

qtserialport为Qt提供了串口相关的类,安装后可以开发串口相关的Qt应用。

解压qtserialport,

xz -dv qtserialport-everywhere-src-5.12.10.tar.xz
tar xvf qtserialport-everywhere-src-5.12.10.tar

进入qtserialport目录,创建build,进入并执行qmake,

cd qtserialport-everywhere-src-5.12.10
mkdir build
cd build
qmake ..

结果如下图所示,

在这里插入图片描述

然后编译安装,

make && make install

若过程没有出现错误,则安装成功。

3、编译安装qtserialbus

qtserialbus为Qt提供了总线相关的类,安装后可以开发CAN或Modbus相关的Qt应用。

安装qtserialbus需要qtserialport的支持,直接编译安装qtserialbus会出现情况如下图所示,

在这里插入图片描述

解压qtserialbus,

xz -dv qtserialbus-everywhere-src-5.12.10.tar.xz
tar -xvf qtserialbus-everywhere-src-5.12.10.tar

进入qtserialbus目录,创建build,并执行qmake,

cd qtserialbus-everywhere-src-5.12.10
mkdir build
cd build
qmake ..

结果如下图所示,

在这里插入图片描述

然后编译安装,

make && make install

若过程没有出现错误,则安装成功。

至此,qtserialbus和qtserialport模块已经成功添加,可以在Qt安装目录的lib文件夹下看到有相关的文件,如下图所示,

在这里插入图片描述

三、配置IDE

上述步骤完成后,已经可以通过命令行编译Qt程序了,但是想方便点调试Qt程序的话,可以使用qtcreator。

Qt Creator是一款跨平台的、轻量级的Qt集成开发环境(IDE),使用它能够方便快速地完成Qt应用的开发。

安装qtcreator,

apt install qtcreator

安装完毕后,若直接启动qtcreator,很大可能会崩溃,如下图所示,

在这里插入图片描述

为了防止冲突,需要把之前配置的Qt环境变量注释掉,

vim ~/.bashrc

#export QT_HOME=/opt/qt-5.12.10-x86_64
#export PATH=${QT_HOME}/bin:$PATH
#export LD_LIBRARY_PATH=${QT_HOME}/lib

source ~/.bashrc

查看Qt版本如下图所示,若仍是5.12.10,可以尝试重新打开命令行终端或重启虚拟机,

在这里插入图片描述

启动qtcreator,

qtcreator

进入qtcreator后,点击导航栏Tools,选择Options,进入配置界面,

在这里插入图片描述

进入配置界面后,点击右侧选项中的Build&Run,并切换到Qt Versions界面,点击Add添加Qt5.12.10的qmake,然后点击Apply让配置生效,

在这里插入图片描述

接着,切换到Kits界面,更改Desktop(default)下的Qt version为Qt5.12.10,点击Apply生效,最后点击OK关闭配置界面,

在这里插入图片描述

这样就可以在Ubuntu14.04上使用qtcreator调试serialbus和serialport相关的Qt程序了。

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值