Jetson Xavier NX套件 Ubuntu 源码编译安装Qt5.15.6

环境:

硬件:Jetson Xavier NX 套件(500G SSD)
系统:Ubuntu 20.4
g++/gcc工具链:version9.4.0 (target: aarch64-linux-gnu)

问题:

限于篇幅,将编译过程中所有问题均记录于:
编译安装Qt5.15.6 过程中遇到的问题处理集

开始:

最近项目需要在Jetson Xavier NX 套件上进行应用开发,需要选择一个QT版本编译成目标板能够运行的库。我选择了5.15.6,因为有500G的SSD,所以我是在目标板上直接编译,而非交叉编译,交叉编译请注意编译工具的配置。网上有很多例子,遇到qtwebengine qtwayland qtmultimedia qtlocation 等库编译失败就在Configure 配置中skip了,但是刚好我这个项目需要用到qtmultimedia 和 qtlocation 。所以我准备不跳过任何组件,进行全编译。

准备工作

0、保证系统剩余空间再150G以上

1、Jetson Xavier NX系统安装、编译工具链

安装请参考我的 Jetson Xavier NX 套件将系统装到SSD

2、 交换空间再分配32G

由于Jetson Xavier NX仅有8GB内存,交换空间默认为4GB,在编译过程中,内存几乎占满,交换空间最大需要15G以上,所以建议给交换空间再分配16G以上,我直接再分配了32G在这里插入图片描述

//在根目录下创建一个名为“swapfile”交换空间文件,
//块大小bs为64MB,块的个数count为512,
//“swapfile”文件大小为64MB*512=32GB。
sudo dd if=/dev/zero of=/swapfile bs=64M count=512
//将空间格式化成swap格式 。此步需要等待已一定时间,空间越大,时间越长
sudo mkswap /swapfile
//激活swap空间,可通过free -h查看交换空间大小 ,注意,每次重启系统都需要执行激活空间。
//后面如果遇到ninja: build stopped: subcommand failed. 
//make[3]: *** [Makefile.gn_run:1189: run_ninja] Error 1   基本就是空间不足导致
sudo swapon /swapfile

3、 修改默认堆栈大小

由于Jetson Xavier NX的Ubuntu系统将线程默认栈空间大小调整为1024KB,导致某些库无法编译通过。

//以管理员身份打开/etc/security/limits.conf
sudo vim /etc/security/limits.conf
//按G来到配置文件底部,新增两行,将线程默认栈空间大小改为10240,修改如下:
ubuntu hard stack 10240     //此处ubuntu为用户名,请参照自己的用户名进行修改
ubuntu soft stack 10240
//重启生效
reboot

4、安装依赖

使用NVIDIA原始的源、不用修改国内源

4.0、QtBase相关依赖
sudo apt-get install bison build-essential qt5-default 
sudo apt-get install perl git gperf ruby 
sudo apt-get install libclang-10-dev llvm-10*
sudo apt-get install xcb* libxcb* libx11* libxkbcommon* libxrender* libxi-dev
4.1、QtOpenGL相关依赖
sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev libegl1-mesa-dev freeglut* libgles* libglew*
4.2、QtWebengine相关依赖
sudo apt-get install flex libicu-dev libxslt-dev
sudo apt-get install libssl-dev libxcursor-dev libxcomposite-dev libxdamage-dev libxrandr-dev 
sudo apt-get install libdus* dbus*
sudo apt-get install libfontconfig1-dev fontconfig libcap-dev libxtst-dev libxext-dev
sudo apt-get install libpulse-dev libudev-dev libpci-dev libnss3-dev libasound2-dev libxss-dev 
sudo apt-get install libgstreamer-gl1.0-0 libgstreamer-plugins-base1.0-dev libgstreamer1.0-dev
sudo apt-get install libcups2* pulseaudio* alsa-* mesa-* systemd* system-* libgudev-1.0-dev libatspi2.0* at-spi2-* libclipper-dev
sudo apt-get install nodejs gyp ninja-build libdrm-dev
4.3、 QtBlueTooth相关依赖
sudo apt-get install bluez* bluetooth libbluetooth*
4.4、Qtmultimedia相关依赖
sudo apt-get install libwayland-dev

编译

0、 下载Qt5.15.6源代码(可根据自己的需求下载不同版本)

1、解压源码

所有操作均在“/opt/”目录下
将qt-everywhere-opensource-src-5.15.6.tar.xz源码包复制到“/opt/”目录下

//进入opt目录
cd /opt/
//创建qt5.15.6文件夹 和 qt5.15.6_aarch64 文件夹
//用于编译好后安装qt的位置
sudo mkdir qt5.15.6_aarch64 
//用于解压源码和进行编译产生的中间文件存放
sudo mkdir qt5.15.6
//将源码解压到qt5.15.6,并进入该目录 
sudo tar xvf qt-everywhere-src-5.15.6.tar.xz -C ./qt5.15.6/
cd ./qt5.15.6/

2、创建自动配置脚本

//网上有些例子,在这里创建build文件夹,在这个文件夹下再创建配置脚本。但是我在自动配置时,
//始终要提示未找到all necessary libraries for qpa-xcb support in QtWebEngine。
//在源码目录直接创建则不会提示

//进入源码目录,创建脚本。
cd ./qt-everywhere-src-5.15.6/
sudo vim autoConfigure.sh

将以下内容复制到 autoConfigure中,其中配置选项意思请参考qt之configure选项说明

#!/bin/sh
./configure \
-platform linux-aarch64-gnu-g++ \
-prefix /opt/qt5.15.6_aarch64 \
-confirm-license \
-opensource \
-release \
-shared \
-make libs \
-nomake examples \
-nomake tests \
-dbus \
-opengl \
-pch \
-qt-libjpeg \
-qt-libpng \
-qt-zlib \
-xcb \
-alsa \
-gif \
-gstreamer 1.0 \
-pulseaudio \
-fontconfig \
-system-freetype

修改脚本权限(直接全权限)

sudo chmod 777 ./autoConfigure.sh

3、自动配置

sudo  ./autoConfigure.sh

执行时间,大概需要十分钟左右。执行完成后,认真查看自己需要的模块是否已被勾选,结果显示参考我的编译安装Qt5.15.6 过程中遇到的问题处理集

4、执行编译

sudo make -j6

由于JetsonXavierNX的CPU为6核,此处选择-j6。编译时间相当长,可以在下半时进行。
中间可能好几次因为错误被中断编译。不急不躁,我罗列出我遇到的问题以及处理办法在编译安装Qt5.15.6 过程中遇到的问题处理集中,供大家参考。

5、安装QT

sudo make install

很神奇的是,我在安装过程中,还会进行一些库的编译,估计是我在自动配置的文件里,配置参数不完全。在安装过程中也因为错误中断安装好几次,同样将问题罗列在上述问题处理集里了

6、安装QT Creator

sudo apt-get install qtcreator -y

7、Hello QT5.15.6 for Jetson Xavier NX

在这里插入图片描述

参考:

1、JetsonXavierNX编译安装Qt5.12.9
2、rpms / qt6-qtmultimedia
3、error during compiling
4、树莓派Qt系列教程30:源码方式搭建Qt开发环境
5、NVIDIA Jetson AGX Xavier安装pyQT

  • 3
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Jetson Xavier NX是一款高性能的边缘计算设备,拥有强大的计算能力和AI推理能力,被广泛应用于智能安防、智能制造、自动驾驶等多个领域。Jetson Xavier NX源码编译是指对Jetson Xavier NX的操作系统和应用程序进行编译编译的过程需要使用一些工具和指令,如GCC编译器、make指令、CMake工具等。 首先,需要下载Jetson Xavier NX源码,可以从官方网站上下载。然后,需要安装支持编译的软件,如make和CMake。在编译之前,需要根据实际需要选择编译的目标,例如编译内核、驱动程序和应用程序等。针对不同的目标,可能需要不同的编译方式和工具。 在编译过程中,需要按照一定的顺序依次执行编译指令,例如配置编译环境编译内核、编译驱动程序、编译应用程序等。这些指令需要仔细阅读文档,并按照文档中的指示进行操作,以确保编译的成功。 Jetson Xavier NX源码编译的过程较为繁琐,需要有一定的编程知识和经验,并且需要耐心和细心,以确保编译的成功。编译完成后,可以在设备上安装和运行编译成功的程序,以满足实际需求。 ### 回答2: 《Jetson Xavier NX源码编译.pdf》是一份关于Jetson Xavier NX平台源代码编译的指南文档。该文档主要包括了Jetson Xavier NX平台的硬件特性、软件架构、源码下载、环境配置和编译指导等内容,是进行Jetson Xavier NX平台软件开发的重要参考资料。 文档中提到了Jetson Xavier NX平台的硬件特性,包括具有256核心NVIDIA GPU的AI超级计算机、6核心ARM A57 CPU、8GB LPDDR4x RAM、NVMe M.2 SSD和Gigabit以太网等。同时,文档还介绍了JetPack软件套件的架构和软件组件,包括CUDA、cuDNN、TensorRT、VisionWorks等工具箱。 在源代码的下载方面,文档提供了Jetson Xavier NX平台的官网链接和用户指南,并介绍了源代码的下载方式和解压方式,同时还提供了下载完成后相关文件夹的解释。 在环境配置方面,文档详细介绍了Ubuntu 18.04的安装和配置,包括软件源修改、系统升级和安装所需依赖库等步骤。 在编译指导方面,文档提供了基于Makefile的编译方法和CMakeLists.txt的编译方法,对于不同的开发需求,文档也提供了分步骤的详细编译指导,使得开发者能够快速上手开始开发工作。 总之,《Jetson Xavier NX源码编译.pdf》是一份非常实用的Jetson Xavier NX平台软件开发指导文件,对于想要深入学习和开发Jetson Xavier NX平台的开发者来说,是一份非常值得阅读和参考的资料。 ### 回答3: 《Jetson Xavier NX源码编译.pdf》是一份关于如何在Jetson Xavier NX开发板上进行源代码编译的文档。Jetson Xavier NX是一款高性能、低功耗的AI计算平台,使用者可以在其上进行深度学习、计算机视觉和机器人等领域的开发。 本文档详细阐述了如何在Jetson Xavier NX上进行Linux内核和驱动的源代码编译。它包括了在Ubuntu环境安装所需的软件包,如gcc、make、cmake、git等,并提供了一些例子代码和编译命令。同时,本文档还介绍了如何使用JetPack SDK进行系统的烧写和配置。 值得注意的是,由于本文档的针对性较强,对于没有相关经验的用户来说,有可能会出现编译失败、系统崩溃等情况。因此,在操作前需要对该平台有一定的了解,并且仔细阅读本文档的内容,尤其是注意一些风险提示和注意事项。 总之,《Jetson Xavier NX源码编译.pdf》对开发者在Jetson Xavier NX上进行源代码编译提供了详尽的指导,有助于用户深入掌握这一强大的AI计算平台,快速实现自己的开发和研究计划。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值