QT源码编译



背景:平台为jeton xavier nx开发板,当然适合所有jeson平台,确保Ubuntu系统为Ubuntu 20.04.4 LTS或以上

一、环境准备

1、Qt源码下载地址

以6.6.2为例,下载地址:https://download.qt.io/official_releases/qt/6.6/6.6.2/
zip后缀文件应用于windows下编译,故下载tar.xz后缀文件。从QT 5.15版本后不再支持离线安装qt,不过离线包安装也仅限于x86体系结构的设备。

2、安装包准备

#libxcb相关依赖
sudo apt -y install '^libxcb.-dev’ libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev
#QtWebkit相关依赖
sudo apt -y install flex bison gperf libicu-dev libxslt-dev ruby
#QtBase相关依赖
sudo apt -y install libdbus-1-dev libasound2-dev
sudo apt -y install build-essential
sudo apt -y install perl git
#QtDoc相关依赖
sudo apt -y install libclang-dev llvm clang
#QtOpenGL相关依赖
sudo apt -y install libgl1-mesa-dev libegl1-mesa-dev
sudo apt -y install freeglut
libgles*
sudo apt -y install libglew-dev
#QtWebEngine相关依赖
sudo apt -y install libssl-dev libxcursor-dev libxcomposite-dev libxdamage-dev libxrandr-dev
sudo apt-get -y install libdus*
sudo apt -y install dbus*
sudo apt -y install libfontconfig1-dev fontconfig libcap-dev libxtst-dev libxext-dev
sudo apt -y install libpulse-dev libudev-dev libpci-dev libnss3-dev libxss-dev
sudo apt -y install libgstreamer-gl1.0-0 libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
sudo apt -y install libcups2* alsa-* mesa-* libgudev-1.0-dev libatspi2.0* at-spi2-* libclipper-dev
sudo apt -y install gyp ninja-build libdrm-dev
#QtBlueTooth相关依赖
sudo apt -y install bluez* bluetooth libbluetooth*
#编译QtWebEngine报错后安装
sudo apt -y install libwayland-dev
sudo apt -y install libmd4c-dev libmd4c-html0-dev

#解决python3 没安装html5lib的问题
sudo apt -y install pip
pip3 install html5lib
#webengine依赖,如果未安装再安装后需要删除qt源码再解压,然后配置才能成功
sudo apt -y install libxshmfence-dev
sudo apt -y install libxkbfile-dev

3、系统环境配置

3.1、增加交换空间(亲测必须设置)

//在根目录下创建一个名为“swapfile”交换空间文件,块大小bs为64MB,块的个数count为256,“swapfile”文件大小为64MB*128=16GB。
sudo dd if=/dev/zero of=/swapfile bs=64M count=256
//将空间格式化成swap格式
sudo mkswap /swapfile
//激活swap空间,可通过free -m查看交换空间大小
sudo swapon /swapfile

3.2、调整打开最大文件数

用ulimit -n查看默认1024,通过命令ulimit -n 10240调大(亲测必须设置)

3.3、更新cmake版本

cmake版本需要3.18或者以上版本,本开发环境版本较低需要编译cmake源码
1)、官网下载源码
https://cmake.org/download/
PlatformFilesUnix/Linux Source (has \n line feeds)cmake-3.23.1.tar.gz
2)、查看是否存在旧版本如果有则卸载旧版本
cmake --version
sudo apt remove cmake
3)、编译安装
tar zxvf cmake-3.23.1.tar.gz
cd cmake-3.23.1
sudo apt install libssl-dev
./configure
make -j 6
sudo make install
4)、再次确认版本
cmake --version

3.4、更新nodejs版本

nodejs版本需要12或者以上版本,本开发环境版本较低需要编译nodejs源码
1)、官网下载源码
https://nodejs.org/zh-cn/download/
2)、查看是否存在旧版本如果有则卸载旧版本
node --version
sudo apt remove nodejs(默认没安装)
3)、编译安装
tar zxvf node-v16.15.0.tar.gz
cd node-v16.15.0
./configure
make -j 6
sudo make install
4)、node默认安装在/usr/local/bin路径下,由于只生成node,故需要到/usr/local/bin路径下ln -s node nodejs,这样查看版本才正常

二、编译

#实际编译参数根据需要更改,最好在开发板上编译,交叉编译需要另外搭环境
./configure -prefix /usr/local/Qt-6.5.2 -webengine-printing-and-pdf -webengine-proprietary-codecs
cmake --build .
sudo cmake --install

三、总结

上述情况编译Qt6.5.3及以下的版本都尝试过,一般编译都没问题,Qt6.6.1或者以上的版本可能需要做如下更改:
1、ubuntu系统更新到ubuntu 22
2、sudo apt -y install libmd4c-html0-dev

  • 28
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值