VTK(1):ubuntu 22.04 源码编译安装 Qt5.15.9

安装依赖库

sudo apt-get install gcc libdbus-1-dev libnss3-dev gedit flex bison gperf libxcb* qtchooser build-essential libgl1-mesa-dev libglu1-mesa-dev libegl1-mesa-dev freeglut3-dev libxkbcommon-x11-dev libxkbcommon-dev libxrender-dev libx11-dev libx11-xcb-dev 

如下为安装qtwebengine依赖项:

sudo apt-get install bison build-essential gperf flex python2 libasound2-dev libcups2-dev libdrm-dev libegl1-mesa-dev libnss3-dev libpci-dev libpulse-dev libudev-dev nodejs libxtst-dev gyp ninja-build

sudo apt-get install libssl-dev libxcursor-dev libxcomposite-dev libxdamage-dev libxrandr-dev libfontconfig1-dev libxss-dev libwebp-dev libjsoncpp-dev libopus-dev libminizip-dev libavutil-dev libavformat-dev libavcodec-dev libevent-dev libvpx-dev libsnappy-dev libre2-dev libprotobuf-dev protobuf-compiler libxkbfile-dev

如下为安装qtpdf依赖项:

sudo apt-get install build-essential gcc g++ cmake libxkbcommon-x11-dev libgl1-mesa-dev libglu1-mesa-dev libfontconfig1-dev libmysqlclient-dev libxcb-xfixes0-dev libxcb-util-dev
sudo apt install bison build-essential gperf flex python2 libasound2-dev libcups2-dev libdrm-dev libegl1-mesa-dev libnss3-dev libpci-dev libpulse-dev libudev-dev nodejs libxtst-dev gyp ninja-build
sudo apt install libssl-dev libxcursor-dev libxcomposite-dev libxdamage-dev libxrandr-dev libfontconfig1-dev libxss-dev libsrtp2-dev libwebp-dev libjsoncpp-dev libopus-dev libminizip-dev libavutil-dev libavformat-dev libavcodec-dev libevent-dev libvpx-dev libsnappy-dev libre2-dev libprotobuf-dev protobuf-compile

引用自 QtPDF 的编译与试用

从源码安装 Qt5

Qt-5.15.6以及以前版本应该有问题,编译查找assimp出错。
官方下载目录:https://download.qt.io/official_releases/qt/5.15
镜像下载目录: http://mirrors.ustc.edu.cn/qtproject/official_releases/qt/5.15
解压并进入qt-everywhere-src-5.15.9目录。

修改源文件:

# qtquick3d/src/plugins/assetimporters/assimp/assimp.pro
# 13行:   QMAKE_USE_PRIVATE += quick3d-assimp

编译命令:

git submodule update --init

mkdir build && cd build
../configure -xcb -opensource -confirm-license -proprietary-codecs -no-feature-webengine-system-ninja -nomake examples -nomake tests
make -j
sudo make install

# 或者使用如下命令编译
# gmake && sudo gmake install

# 设置/选择 qmake,命名为 qt-5.15.9
qtchooser -install qt-5.15.9 /usr/local/Qt-5.15.9/bin/qmake

设置环境变量:

export QTDIR=/usr/local/Qt-5.15.9
export PATH=$QTDIR/bin:$QTDIR/bin:$QTDIR/bin:$PATH
export MANPATH=$QTDIR/man:$QTDIR/man:$QTDIR/man:$MANPATH
export LD_LIBRARY_PATH=$QTDIR/lib:$QTDIR/lib:$QTDIR/lib:$LD_LIBRARY_PATH
export QT_QPA_PLATFORM_PLUGIN_PATH=${QTDIR}/plugins/
export QT_QPA_FONTDIR=${QTDIR}/lib/fonts
export QT_SELECT=qt-5.15.9

设置完 LD_LIBRARY_PATH 之后,APP 开发 CMake find_package可以找到Qt

  • 如果 Qt APP 找不到字体,需要设置QT_QPA_FONTDIR路径,并检查fonts目录下是否有字体文件,如*.ttf文件,如果没有则从其他字体目录拷贝过来即可。 如Qt-fonts,下载下来之后,拷贝到Qt的安装目录:sudo cp -r Qt-Fonts/fonts /usr/local/Qt-5.15.9/lib/

QtWebEngine可能的错误处理

错误信息

/usr/bin/python2 ../../3rdparty/chromium/third_party/catapult/tracing/bin/generate_about_tracing_contents --outdir gen/content/browser/tracing
FAILED: gen/content/browser/tracing/about_tracing.js gen/content/browser/tracing/about_tracing.html 
/usr/bin/python2 ../../3rdparty/chromium/third_party/catapult/tracing/bin/generate_about_tracing_contents --outdir gen/content/browser/tracing
Traceback (most recent call last):
.......

解决办法:

qtwebengine/src/3rdparty/chromium/third_party/catapult/tracing/tracing_build/generate_about_tracing_contents.py
defualt=True     # Line 19, original is defualt=False

直接安装 Qt

sudo apt-get install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools
sudo apt-get install qtcreator
sudo apt-get install qt5*

sudo apt install mesa-common-dev libfontconfig1 

使用CMake开发Qt APP Demo

参考:

参考

下载及安装官方Qt

安装libxcb

sudo apt-get install libxcb*

官网 下载 qt-opensource-linux-x64-5.14.2.run

安装Qt 5.14.2

chmod +x qt-opensource-linux-x64-5.14.2.run
sudo ./qt-opensource-linux-x64-5.14.2.run

添加环境变量

export QTDIR=/opt/Qt5.14.2
LD_LIBRARY_PATH=${QTDIR}/5.14.2/gcc_64/lib:${QTDIR}/Tools/QtCreator/lib:${LD_LIBRARY_PATH}
PATH=${QTDIR}/5.14.2/gcc_64/bin:${QTDIR}/Tools/QtCreator/bin:${PATH}

参考 【Ubuntu环境配置】安装Qt 5.14.2

Windows 在线安装Qt6

posted @   山岚2013  阅读(2362)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示