Qt5.14.2 + opengl 交叉编译移植至Jetson Nano(补充)

本文详细描述了如何在Ubuntu20.04上为JetsonNano进行Qt5.14.2的OpenGL跨平台编译,包括设置开发环境、安装依赖库、软链接配置、编译配置以及在JetsonNano上安装和同步库的过程。
摘要由CSDN通过智能技术生成

我只是把一些容易错误点指出来,从头到尾移植,请看下面链接  

Qt嵌入式解决方案(Qt5.14.2 + opengl 交叉编译移植至Jetson Nano 详细步骤)-CSDN博客

想不要那么麻烦直接搞好的朋友,直接看最后! 

 踩坑再回来,可能对你有所帮助!

 最重要:开发机器只负责编译,而文件系统负责在开发机器上提供jetson nano上的一些库,安装库要在jetson nano上。

1.开发机器操作(ubuntu20.04):

一:sudo apt-get install gcc-aarch64-linux-gnu

执行这个指令后我发现没有aarch64-linux-gnu-g++,

你还需要安装 sudo apt-get install g++-aarch64-linux-gnu

注:在开发机器(ubuntu20.04)上安装

二:软连接opengl es库
进入 Jetson Nano 的 /usr/lib/aarch64-linux-gnu/tegra-egl 目录,执行:

sudo ln -s libGLESv2_nvidia.so.2 libGLESv2.so  
sudo ln -s libEGL_nvidia.so.0 libEGL.so 

 这步非常重要,将第五步执行完之后到你的开发机器(我的是ubuntu20.04的虚拟机)看看相应的目录有没有这些软链接,如果没有在相应文件再执行一次

  三: 每当你往jetson nano上安装完各种库一定要完成以下操作(在xx/Linux_for_Tegra/rtoofs/usr/文件夹),同步jetson nano上的库到开发机器

sudo rsync -e ssh -avz root@192.168.10.201:/usr/include  . 
sudo rsync -e ssh -avz root@192.168.10.201:/usr/lib  . 

 不要忘了修复因为同步而损坏的链接文件,要在Linux_for_Tegra文件夹

sudo ./link.sh ./rootfs/

四:.准备编译配置

./configure \ 
-v \
-opensource \
-confirm-license \
-device-option CROSS_COMPILE=/usr/bin/aarch64-linux-gnu- \  
-device linux-jetson-tx1-g++ \
-prefix /home/你的用户目录/Qt-for-arm5.14.2 \
-extprefix /home/你的用户目录/Qt-for-arm5.14.2  \
-hostprefix /home/你的用户目录/Qt-for-arm5.14.2/tools \  
-nomake examples \  
-nomake tests \  
-nomake tools \  
-opengl es2 \
-sysroot /home/你的用户目录/jetsonNano/Linux_for_Tegra/rootfs

 一定要注意最后一行,它是你在开发机器上的文件系统的目录

2. jetson nano操作:

        一:无脑的安装库:

apt-get install  libasound2-dev libbz2-dev libcap-dev libcups2-dev libdrm-dev libegl1-mesa-dev libgcrypt11-dev libnss3-dev libpci-dev libpulse-dev libudev-dev libxtst-dev gyp ninja-build libglu1-mesa-dev libfontconfig1-dev libx11-xcb-dev libicu-dev
sudo apt-get install libgles2-mesa
sudo apt-get install libgles2-mesa-dev

 如果一次性安装出错就一个一个的安装(一定要在jetson nano安装)。

ERROR: The OpenGL functionality tests failed! You might need to modify the include and library search paths by editing QMAKE_INCDIR_OPENGL[_ES2], QMAKE_LIBDIR_OPENGL[_ES2] and QMAKE_LIBS_OPENGL[_ES2] in the mkspec for your platform.

这个问题就是这样解决的

不要忘记同步到文件系统和修复软连接!!!

  最后:这是我的成功截图

——————————————————————————————————————————

这是已经编译好的qt5.15.2的源码(我的机器是jetson nano4.6.4)

链接:https://pan.baidu.com/s/1bWK9dvopZ_M772x0wKoAVg?pwd=dgth 
提取码:dgth

下载这个直接在jetson nano上编程,不需要交叉编译,直接一步到位!

下载解压之后,安装下面的qtcreator

sudo apt-get install qt5-default qtcreator -y

 安装好之后在终端输入 qtcreator

如下图

然后点击工具->选项

你们打开之后的kit肯定没有5.15.2kit,所以不用担心和我的不一样

点击qt-version->添加:把你们之前解压的压缩包里面的bin/qmake添加
完成如下:

 然后再点击 构建套件(kit)->添加,如下图:

改这个为你刚刚添加的

名字你自己取 

欢迎各位朋友在评论区交流问题!

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Windows平台上交叉编译Qt 5.14.2至树莓派,需要进行以下步骤: 1. 安装交叉编译工具链 首先需要在Windows上安装树莓派的交叉编译工具链。可以从树莓派官网下载对应版本的工具链,并将其添加到环境变量中。 2. 下载Qt源码 从Qt官网下载Qt 5.14.2的源码,并解压到本地路径。 3. 配置Qt编译环境 在Qt源码目录下打开命令行窗口,执行以下命令: ``` ./configure -release -opengl es2 -device linux-rasp-pi3-g++ -device-option CROSS_COMPILE=<path-to-toolchain>/bin/arm-linux-gnueabihf- -sysroot <path-to-sysroot> -prefix /usr/local/qt5pi -opensource -confirm-license -skip qtscript -skip qtwayland -skip qtwebengine -skip qtwebview -skip qtwebchannel -skip qtxmlpatterns -skip qtwebsockets -skip qtwebglplugin -skip qtgamepad -skip qtvirtualkeyboard -skip qtpurchasing -skip qtnetworkauth -no-use-gold-linker -make libs -make tools -no-gbm -no-eglfs -no-directfb -no-kms -no-xcb -no-opengl -no-gtk -no-iconv -no-feature-freetype -no-feature-fontconfig -no-feature-harfbuzz -no-feature-journald -no-feature-system-proxies -no-feature-testlib -no-feature-xml -no-feature-xmlpatterns -no-feature-tz -no-feature-forkfd -no-feature-shared-memory -no-feature-dbus -no-feature-accessibility -no-feature-openssl -no-feature-sqlite -no-feature-sqlite2 -no-feature-mtdev -no-feature-evdev -no-feature-input -no-feature-pcre -no-feature-pcre2 -no-feature-glib -no-feature-zlib -no-feature-libjpeg -no-feature-libpng -no-feature-libmng -no-feature-libtiff -no-feature-freetype -no-feature-harfbuzz -no-feature-gstreamer -no-feature-alsa -no-feature-pulseaudio -no-feature-qml-debug -no-feature-qml-tracing -no-feature-debug ``` 其中,`<path-to-toolchain>`是交叉编译工具链的路径,`<path-to-sysroot>`是树莓派系统根目录的路径。 执行完该命令后,将生成一个`Makefile`文件。 4. 编译QtQt源码目录下执行以下命令: ``` make ``` 该命令会编译Qt源码,并将编译结果安装到`/usr/local/qt5pi`目录下。 5. 传输Qt库文件到树莓派 将`/usr/local/qt5pi`目录下的库文件传输到树莓派上。 6. 在树莓派上使用Qt 在树莓派上进行Qt开发时,需要在程序中指定Qt库文件的路径。可以通过在程序中设置环境变量`LD_LIBRARY_PATH`来指定Qt库文件路径,或者在程序中使用`QCoreApplication::addLibraryPath()`函数来添加Qt库文件路径。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值