UOS v20自带的Qt5.11在2022年以后的主流开源应用编译中显得有点力不从心了,因此deepin-shared-libs提供一套基于UOS v20 amd64、aarch64平台编译的Qt5.15.10 OpenGLES,目前可以从应用商店下载的OBS Studio就是基于该库编译的。
相比把Qt libs直接集成到应用bundle中增加包体积,deepin-shared-libs的Qt515在deepin v20、v23和UOS v20上提供了仓库内的共同依赖,基于该Qt编译的应用直接调用公共库即可。且该方案提供了一套完整的模板,覆盖Qt主要环境变量以及是否选择加载DTK插件的功能。
在开始前,需要下载并安装对应的开发套件。提供了传统的deb包和归档包的形式可供下载: Qt5.15.10 OpenGLES
DTK5
下载任意要求Qt5.15的源码进行编译准备。可从readme、CMakeList.list等获取Qt版本要求,这里从cmake配置过程中的报错获取了Qt版本要求
为了保证能够正常识别出Qt515,因此要设置以下环境变量。这里下载的是归档包,安装目录在"/usr/local/qt5.15-gles" 在源码项目根目录中打开终端操作:
export PATH=/usr/local/qt5.15-gles:/usr/local/qt5.15-gles/bin:$PATH export LD_LIBRARY_PATH=/usr/local/qt5.15-gles/lib export CMAKE_INCLUDE_PATH=/usr/local/qt5.15-gles/include
在设置完环境变量后,可通过"qmake -v"确认是否正确加载Qt515
➜ 1 qmake -v QMake version 3.1 Using Qt version 5.15.10 in /usr/local/qt5.15-gles/lib
在完成以上步骤后,可以正式开始编译。我一般使用以下的编译参数(仅供参考,需要根据实际项目环境调整):
CC=/usr/lib/ccache/clang-13 CXX=/usr/lib/ccache/clang++-13 cmake -DCMAKE_BUILD_TYPE=Release -GNinja -DCMAKE_CXX_STANDARD=17 -DCMAKE_CXX_FLAGS="-fuse-ld=lld" -DCMAKE_C_FLAGS="-fuse-ld=lld" -DCMAKE_SHARED_LINKER_FLAGS="-fuse-ld=lld" -DCMAKE_INSTALL_PREFIX=/opt/apps/
该库亦同时提供了通用启动模板,根据实际需求对字段进行注释即可决定是否启动某功能。放置在程序的files目录下即可 需要修改的内容:是否加载/注释DTK5 插件、ARCH架构、exec可执行文件名
在测试启动脚本、程序可以正常启动后即可按照自己习惯的方式进行打包,在依赖清单中加入"qt5.15gles-extra.runtime.szbt"即可,版本可参考发行历史 需要注意的是,若启用了DTK5插件功能,则需要附加上依赖"dtk5-gles.runtime.szbt"
本库为滚动维护,若存在bug、或需要加入其他extra libs,可在github仓库中提交issue,或加入Matrix聊天室一起讨论:#deepin-shared-libs:matrix.org 欢迎其他编译发烧友使用本库进行简单的编译和维护开源项目,也欢迎向deepin-shared-libs提交二进制libs包或其他编译文档。
Popular Ranking
Popular Events
UOS v20自带的Qt5.11在2022年以后的主流开源应用编译中显得有点力不从心了,因此deepin-shared-libs提供一套基于UOS v20 amd64、aarch64平台编译的Qt5.15.10 OpenGLES,目前可以从应用商店下载的OBS Studio就是基于该库编译的。
优势
相比把Qt libs直接集成到应用bundle中增加包体积,deepin-shared-libs的Qt515在deepin v20、v23和UOS v20上提供了仓库内的共同依赖,基于该Qt编译的应用直接调用公共库即可。且该方案提供了一套完整的模板,覆盖Qt主要环境变量以及是否选择加载DTK插件的功能。
准备工作
下载资源
在开始前,需要下载并安装对应的开发套件。提供了传统的deb包和归档包的形式可供下载:
Qt5.15.10 OpenGLES
DTK5
安装devel资源
安装目录
必要依赖:libglvnd-dev, libwayland-dev, libgles2-mesa-dev, libomp-13-dev
下载任意源码
下载任意要求Qt5.15的源码进行编译准备。可从readme、CMakeList.list等获取Qt版本要求,这里从cmake配置过程中的报错获取了Qt版本要求
编译操作
设置变量
为了保证能够正常识别出Qt515,因此要设置以下环境变量。这里下载的是归档包,安装目录在"/usr/local/qt5.15-gles"
在源码项目根目录中打开终端操作:
确认Qt版本正确
在设置完环境变量后,可通过"qmake -v"确认是否正确加载Qt515
开始编译
在完成以上步骤后,可以正式开始编译。我一般使用以下的编译参数(仅供参考,需要根据实际项目环境调整):
CC=/usr/lib/ccache/clang-13 CXX=/usr/lib/ccache/clang++-13 cmake
-DCMAKE_BUILD_TYPE=Release -GNinja -DCMAKE_CXX_STANDARD=17
-DCMAKE_CXX_FLAGS="-fuse-ld=lld" -DCMAKE_C_FLAGS="-fuse-ld=lld"
-DCMAKE_SHARED_LINKER_FLAGS="-fuse-ld=lld"
-DCMAKE_INSTALL_PREFIX=/opt/apps/
配置启动脚本
该库亦同时提供了通用启动模板,根据实际需求对字段进行注释即可决定是否启动某功能。放置在程序的files目录下即可
需要修改的内容:是否加载/注释DTK5 插件、ARCH架构、exec可执行文件名
封装
在测试启动脚本、程序可以正常启动后即可按照自己习惯的方式进行打包,在依赖清单中加入"qt5.15gles-extra.runtime.szbt"即可,版本可参考发行历史
需要注意的是,若启用了DTK5插件功能,则需要附加上依赖"dtk5-gles.runtime.szbt"
联系我
本库为滚动维护,若存在bug、或需要加入其他extra libs,可在github仓库中提交issue,或加入Matrix聊天室一起讨论:#deepin-shared-libs:matrix.org
欢迎其他编译发烧友使用本库进行简单的编译和维护开源项目,也欢迎向deepin-shared-libs提交二进制libs包或其他编译文档。