当前位置: 首页 > article >正文

Qt5.15.x之后的版本源码编译安装

在以下网站现在源文件

https://mirrors.tuna.tsinghua.edu.cn/qt/

进入网站后选择以下路径

archive/qt/5.15/5.15.8/

该路径下
single中是完整qt源码
submodules是各单个模块源码

一、安装基础依赖,此处需要慎重安装,因为分析部分Debian系统和麒麟系统和此部分的内容可能有冲突,造成系统崩溃
sudo apt-get install libxcb-xinerama0-dev 
sudo apt-get install build-essential perl python git


sudo apt-get install libxcb-xinerama0-dev 
sudo apt-get install build-essential perl python git

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

sudo apt-get install flex bison gperf libicu-dev libxslt-dev ruby

sudo apt-get install libssl-dev libxcursor-dev libxcomposite-dev libxdamage-dev libxrandr-dev libdbus-1-dev libfontconfig1-dev libcap-dev libxtst-dev libpulse-dev libudev-dev libpci-dev libnss3-dev libasound2-dev libxss-dev libegl1-mesa-dev gperf bison

sudo apt-get install libasound2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev

#安装ninja编译依赖re2c

sudo apt-get insatll re2c
#编译ninja
cd qt-everywhere-src-5.15.2/qtwebengine/src/3rdparty/ninja
./configure.py --bootstrap 
#安装ninja
sudo cp ./ninja  /usr/bin
#检查安装是否完成
ninja --version
二、如果编译完整qt源码

下载single中的源码后解压

查询了一些qt5.15.x版本的问题,说qt5.15后版本和assimp版本兼容不够
需要更改源码中qtquick3d/src/plugins/assetimporters/assimp/assimp.pro文件
需要将QMAKE_USE_PRIVATE +=assimp
更难为QMAKE_USE_PRIVATE += quick3d_assimp
这里不更改的话,会有很多插件库无法编译

在解压出来的文件目录中打开终端执行以下命令

./configure -prefix /usr/local/lib/qt-5.15.8-release -nomake example -nomake tests

执行过程中需要输入选择
第一次选择o
第二次选择y

执行完成后,执行

sudo make -j8
sudo make install

该过程可能比较久
执行完成后,在/usr/local/lib下应该就有一个生成的qt-5.15.8-release目录

运行环境则需要配置如下指令段,我是在/etc/profile中配置的,每次运行程序要先source一下才行

export QTDIR=/usr/local/lib/qt-5.15.8-release
export PATH=$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export QT_QPA_PLATFORM_PLUGIN_PATH=$QTDIR/plugins

如果需要编译单独的模块源码
下载submodules中的源码后
在解压出来的文件目录中执行

qmke
make DESTDIR=./build/
make install

然后再将生成的一些库拷贝到对应的路径下才能正常调用。
PS:最好使用和系统重同版本的Qt。


http://www.kler.cn/a/282969.html

相关文章:

  • 基于node一键发布到服务器的js脚本
  • 深度学习神经网络在机器人领域应用的深度剖析:原理、实践与前沿探索
  • 高效稳定!新加坡服务器托管方案助力企业全球化布局
  • 为什么hbase在大数据领域渐渐消失
  • Elasticsearch 8.16:适用于生产的混合对话搜索和创新的向量数据量化,其性能优于乘积量化 (PQ)
  • vue请求数据报错,设置支持跨域请求,以及2种请求方法axios或者async与await
  • 生成式AI,搜索赛道的又一个黄金十年
  • Unity3D 遍历预制体
  • Zookeeper集成Clickhouse方法以及作用
  • 大模型之二十八-语音识别Whisper进阶
  • Spring Boot与桥接模式:构建灵活的产品分类体系
  • 生信圆桌:专业生信服务器与平台服务的提供者
  • How do I do function calling in Azure Openai using the javascript sdk
  • 系统设计——登录流程
  • Spring Boot启用GZIP压缩
  • 【Kafka】Windows下安装Kafka(全面)
  • wpf datagrid通过点击单元格 获取行列索引2.0
  • golang RSA 解密前端jsencrypt发送的数据时异常 crypto/rsa: decryption error 解决方法
  • P1149 [NOIP2008 提高组] 火柴棒等式
  • OpenHarmony 实战开发——ArkUI中的线程和看门狗机制
  • Linux tty模式下无法使用回滚功能解决(shift+pgup方法不管用)
  • STL中queue、stack的实现与容器适配器的讲解
  • C++入门篇1
  • 【前端面试】React深度学习(下)
  • 【软件测试】自动化测试如此盛行,手工测试该何去何从?
  • Shell脚本入门:多命令处理