在 Ubuntu 中编译 Qt 模块 qtmqtt 官方源码

一、准备

提前准备

  1. Kubuntu 24.04
  2. Qt 5.14.2
  3. git
  4. 官方 qtmqtt 源码

二、下载

  1. git 下载:
sudo apt install git
  1. Qt 下载地址:https://download.qt.io/archive/qt/5.14/5.14.2/,下载 run 文件,由于 Qt 屏蔽了中国大陆的 IP ,所以这里需要魔法上网。下载后运行命令(若没有账号,需要断网再运行命令):
sudo chmod +x ./qt-opensource-linux-x64-5.14.2.run
sudo dpkg -i ./qt-opensource-linux-x64-5.14.2.run
  1. qtmqtt 下载地址:https://github.com/qt/qtmqtt/,运行:
git clone https://github.com/qt/qtmqtt.git

再切换分支:

cd qtmqtt
git checkout 5.14.2

三、环境变量

在 .bashrc(或 .zshrc)中添加环境变量:

export PATH=/home/xxx/Qt5.14.2/5.14.2/gcc_64/bin:$PATH
export LD_LIBRARY_PATH=/home/xxx/Qt5.14.2/5.14.2/gcc_64/lib:$LD_LIBRARY_PATH

在终端运行,使环境变量生效:

source ~/.bashrc 
# 或者
source ~/.zshrc

四、编译到 /home/xxx/Qt5.14.2/5.14.2/gcc_64/

# 这里我是将 qtmqtt 下载到 home 目录下。
cd ~/qtmqtt
# 切换到 Qt 当前对应的版本分支
git checkout 5.14.2
# 创建 build 目录
mkdir build
cd build
# Qt5.14.2 也是安装在 home 目录下。
# 使用 qmake 编译 pro 文件, qmake 要使用 Qt5.14.2 的,否则会使用系统自带的,qmake 版本不对应会有问题。
# INSTALL_ROOT 是参数指定安装路径。
# make install 会将文件安装到 INSTALL_ROOT 指定的路径中。
# 默认情况下,如果没有指定 INSTALL_ROOT,文件可能会安装到系统的默认路径(如 /usr/local)。
/home/xxx/Qt5.14.2/5.14.2/gcc_64/bin/qmake /home/xxx/qtmqtt/qtmqtt.pro INSTALL_ROOT=/home/xxx/Qt5.14.2/5.14.2/gcc_64
make -j$(nproc) VERBOSE=1
make install
# 最后清理
make clean
# 手动将 modules-inst/ 复制到 Qt 安装目录下,这里不会自动复制过去
cp -r ./mkspecs/modules-inst /home/xxx/Qt5.14.2/5.14.2/gcc_64/mkspecs/

五、编译到 /home/xxx/Qt5.14.2/5.14.2/android/

cd ~/qtmqtt
# 删除之前的 build/ 目录,因为之前的里面是编译生成的 gcc_64/ 的文件
rm -rf ./build
# 重新创建
mkdir build
cd build
# 这里用 android/ 下的 qmake 编译,不要弄错了
/home/xxx/Qt5.14.2/5.14.2/android/bin/qmake /home/xxx/qtmqtt/qtmqtt.pro INSTALL_ROOT=/home/xxx/Qt5.14.2/5.14.2/android
make -j$(nproc) VERBOSE=1
make install
make clean
cp -r ./mkspecs/modules-inst /home/xxx/Qt5.14.2/5.14.2/android/mkspecs/

注意:Qt 5.14.2 下只有一个 android/ 文件夹,只需要编译一次,而有些版本像 Qt 5.12.8 之类的有 android_arm64_v8a/ 、 android_armv7/ 和 android_x86/ 三个文件夹,这时候需要编译三次,每次都用对应的qmake版本编译!!!

六、验证安装

编译完成后,会自动将 build/ 目录下的 lib/、include/、mkspecs/modules/ 目录文件复制到对应的 gcc_64/ 目录下,记得手动将 mkspecs/modules-inst/ 目录复制过去,记得仔细查看是否有缺少的文件,如果有就手动复制,编译至此全部结束。

七、其它

其它 Linux 发行版也可照此编译,例如:Fedora。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值