qt5.12.10 在linux的源码编译、移植问题记录

1、概述

Qt版本: Qt5.12.10
Qt 官网下载地址: Qt官网
路径: Qt5.12.10源码目录目录下下载 qt-everywhere-src-5.12.10.tar.xz
**编译平台:方德(其余架构亦可考)

2、编译源码记录:

1、下载源码qt-everywhere-src-5.12.10.tar.gz并解压

tar vxf qt-everywhere-src-5.12.10.tar.gz

2、编译

 sudo ./configure -prefix /usr/local/QT/qt5.12.10 -opensource -nomake examples -nomake tests [默认编译]

或者指定后缀

./configure -prefix /usr/local/QT/qt5.12.10 -opensource -nomake examples -nomake tests  -qtlibinfix 51210

说明:a、指定后缀编译(其中/usr/local/QT/qt5.12.10为编译之后qmake目录 51210为后缀)
b、/usr/local/QT/qt5.12.10为编译之后qmake目录。
3、编译

sudo  make

4、安装

sudo make install

3、安装后目录

1、查找

find / -name qmake

2、版本

****/qmake --version

3、查看自己需要的版本是否存在
不存在:则使用1中的qmake编译(例如:/******/qt5/bin/qmake(安装的qt5的目录) *****/qtcharts/qtcharts.pro(qtcharts源码pro路径))

3、编译之后可以配置

在这里插入图片描述
在这里插入图片描述
ps:这里的配置参考而来,亲测可行。

4、可能遇到的问题

在这里插入图片描述

选项 “o” "y"继续…

5、编译指定模块,以QWebEngineView为例子

这里以wenengineview为例:
进入wenengineview模块:
用qt51210 qmake编译pro文件
在这里插入图片描述
报错1:
在这里插入图片描述
权限问题报错,启用root权限即可。
报错2:
Required gperf could not be found.
QtWebEngine will not be built.
在这里插入图片描述
安装所需模块:
Sudo apt get install gperf
这里注意:安装所需模块之后,清除之前的编译残留。

可能所需的其他包:
apt-get install bison build-essential gperf flex ruby python libasound2-dev libbz2-dev libcap-dev
libcups2-dev libdrm-dev libegl1-mesa-dev libgcrypt11-dev libnss3-dev libpci-dev libpulse-dev libudev-dev
libxtst-dev gyp ninja-build libglu1-mesa-dev libfontconfig1-dev libx11-xcb-dev libicu-dev
A、安装 libxcb依赖
sudo apt-get install ‘^libxcb.*-dev’ libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev
B、安装 Qt Webkit 相关依赖
sudo apt-get install flex bison gperf libicu-dev libxslt-dev ruby
C、安装 Qt WebEngine 依赖
sudo apt-get install libssl-dev libxcursor-dev libxcomposite-dev libxdamage-dev libxrandr-dev libdbus-1-dev libfontconfig1-dev libxtst-dev libpulse-dev libudev-dev libpci-dev libnss3
-dev libasound2-dev libxss-dev libegl1-mesa-dev gperf bison
D、安装 Qt Multimedia 依赖
sudo apt-get install libasound2-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
E、安装 QDoc 相关依赖
sudo apt-get install libclang-6.0-dev llvm-6.0
F、安装 clang-8
sudo apt-get install clang-8
说明:使用 clang 编译C/C++程序源码

6、移植 - 到其他没有qt环境的linux平台

1、查找依赖

ldd AppName

2、拷贝所得依赖至程序目录

# 利用 ldd 提取依赖库的具体路径
LibList=$(ldd $AppName | awk '{ if (match($3,"/")){ printf("%s "), $3 } }')
# 拷贝库文件和可执行程序到目标文件夹
cp $LibList $DstDir

3、拷贝qt 编译版本 plugins

#Qt的插件目录  "/usr/local/QT/qt5.12.10_51210/lib/plugins" 下的所有子目录至 AppPath  (单独拷贝platforms经测试也可)

4、拷贝 libQt5XcbQpa51210.so libQt5DBus51210.so.5
这里采用查找libqeglfs.so依赖的方式获取库(另有一些资料显示天剑软链接,亦可)
5、完整shell脚本
保存build.sh,其中添加以下内容

##qt linux 环境移植脚本
##检测工具linux_方德系统x86导出库脚本
#$1:应用程序名称
#$2:qt版本安装目录

#!/bin/sh

# 可执行程序名
AppName=$1

# 使用的Qt安装目录
QT_DIR=$2

#Qt的插件目录
QtPlugins=${QT_DIR}/"plugins"

#Qt的库目录
QtLib=${QT_DIR}/"lib"

# 当前目录
CURRENT_DIR=$(cd $(dirname $0); pwd)  

# 目标文件夹
DstDir=$CURRENT_DIR

# 利用 ldd 提取依赖库的具体路径
LibList=$(ldd $AppName | awk '{ if (match($3,"/")){ printf("%s "), $3 } }')
# 拷贝库文件和可执行程序到目标文件夹
cp $LibList $DstDir

# 拷贝qt插件依赖
fileList=`ls $QtPlugins`
for fileName in $fileList
do
    cp -r "$QtPlugins/$fileName" "$DstDir"
done

#拷贝 libQt5XcbQpa51210.so.5 && libQt5DBus51210.so.5 拷贝库文件和可执行程序到目标文件夹
Xcb_Name="libQt5XcbQpa51210.so.5"
DBus_Name="libQt5DBus51210.so.5"

Xcb_lib_Path=$(ldd "$CURRENT_DIR/platforms/libqxcb.so" | grep $Xcb_Name | awk '{ if (match($3,"/")){ printf("%s "), $3 } }')
DBus_lib_list=$(ldd "$CURRENT_DIR/platforms/libqxcb.so" | grep $DBus_Name | awk '{ if (match($3,"/")){ printf("%s "), $3 } }')

cp $Xcb_lib_Path $DstDir
cp $DBus_lib_list $DstDir

6、使用修改及注意
./build 应用程序名 qt安装路径

./build AppName /uar/local/Qt/qt5.12.10

7、拷贝到裸机测试通过。

### 如何安装 Qt 5.12.7 尽管当前提供的引用并未直接提及 Qt 5.12.7 的安装方法,但可以基于相似版本的安装流程推导出适用于该版本的操作指南。以下是针对不同操作系统的通用安装指导。 #### Linux 环境下的安装 对于 Ubuntu 或其他类似的 Linux 发行版,可以通过以下方式完成 Qt 5.12.7 的安装: 1. **下载源码包** 访问官方或其他可信资源站点(如引用中的 GitCode),找到对应版本的 `qt-everywhere-src-5.12.7.tar.xz` 文件并下载[^4]。 2. **解压与配置环境** 使用命令行工具解压缩文件,并进入解压后的目录执行配置脚本: ```bash tar xf qt-everywhere-src-5.12.7.tar.xz cd qt-everywhere-src-5.12.7 ./configure -prefix /opt/qt5.12.7 -release -opensource -confirm-license ``` 3. **编译与安装** 配置完成后运行以下命令进行编译和安装: ```bash make -j$(nproc) sudo make install ``` 这些步骤可能因硬件性能而耗时较长,请耐心等待[^1]。 #### Windows 环境下的安装 在 Windows 平台上部署 Qt 5.12.7 可能遇到 DLL 缺失等问题,解决办法如下: 1. **获取安装程序** 下载适合 Windows 的预构建二进制文件或者源代码包。如果无法通过官网获得,则可参考第三方镜像站点提供的链接[^3]。 2. **处理依赖项冲突** 如果安装过程中提示缺少某些动态库文件,需手动添加至系统路径中或将它们复制到应用程序的工作目录下。 3. **验证安装成功与否** 打开命令提示符窗口输入 `qmake --version` 来确认是否正确加载了目标版本号。 #### 跨平台注意事项 无论在哪种操作系统上实施上述过程,都应注意调整参数以适配具体的架构需求(比如 ARM 架构移植场景)。此外还需确保已预先满足所有必要的前置条件,例如 GCC/G++ 工具链的存在以及 Python 解释器的支持等[^2]。 ```python import sys from PyQt5.QtWidgets import QApplication, QLabel if __name__ == "__main__": app = QApplication(sys.argv) label = QLabel('Hello Qt!') label.show() sys.exit(app.exec_()) ``` 以上是一个简单的测试案例用于检验基本图形界面渲染能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值