千万不要在TX2上安装Qt6

失败!Nvidia TX2安装Qt6 和qtCreator7 手把手一步步

千万不要想在TX2上安装QT6!

XCB缺失几乎无解,如果有大佬可以指导一下

最开始准备使用交叉编译的方案给TX2写程序。因为台式机总是会比TX2快。
在粗浅了解和JetSon论坛上的一些消息后还是决定在TX2上安装完整的Qt Creator。
考虑到目前QT6早已推出并且和主机开发环境匹配,选择安装 Qt6。对Qt5有需求的同志、同学请找其他博客,更加清晰简单。
本博客采用编译的方法在TX2上安装Qt6

1 获取Qt6的完成源码包

1.1 注册和获取Qt开发账号

无非就是输入邮箱进行注册、绑定手机号,忽略不谈。

1.2 找到Qt官网下载源码

1.2.1 下载页面

直接下载

1.2.2 选择开源版本

其他版本没有试,一来要花钱,二么这次就是冲着编译去的。
在这里插入图片描述

拉到最下面获取源码

在这里插入图片描述

选择查看其他版本 不使用网页推荐的

一定不要直接下载,网页并不知道我们是ARM64位处理器的,下下来会是x64的安装包。
在这里插入图片描述

选择下载离线包

同上不要直接选择网页推荐的。
在这里插入图片描述

直接选择集成包

如果是Qt老手可以选择下面分包。
在这里插入图片描述

下载完成

名称类似qt-everywhere-src-x.x.x.tar.xz
在这里插入图片描述

安装Qt

解压缩略去,tx2是图像化界面直接鼠标点点就好。

查看安装要求

以后的版本可能不太一样。
在这里插入图片描述
这里有个巨坑
一定要取/qtbase/src/plugins/platforms/xcb看一眼readme
在这里插入图片描述
咱就是说,如果xcb因为这个原因没有安装成功,platforms下不会生成libqxcb.so的,既然这么重要,居然没有加入install -all的readme中,也是逆天。

安装前置/

更新Cmake

查看tx2cmake版本

cmake --version

如果符合要求 camke>=3.18 不用管,否则要安装新版,比如我。
在这里插入图片描述
使用snap安装cmake至最新版本,注意一定要加classic,不然它不让安装

sudo snap install cmake --classic

cmake安装完毕。
在这里插入图片描述
查看版本

cmake --version

在这里插入图片描述
**注意:**这里一定要确认cmake版本,如果出现发现cmake无法更新,请先卸载原本的cmake,再通过snap安装
卸载cmake方法:

sudo apt remove --purge cmake
hash -r
更新GCC

千万不要选择过高的GCC版本,有巨坑在最后补充。
查看要求只需要编译器能够支持C++17的标准库即可。
新刷好的TX2的gcc版本是gcc7
查一下支持,我们只需要选择gcc8,我们可以把gcc,g++都装了

//安装gcc8,g++8
sudo apt-get install gcc-8
sudo apt-get install g++-8

//使用默认优先级的方法设置默认版本
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-8 100
sudo update-alternatives --config gcc

sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-8 100
sudo update-alternatives --config g++

//检查版本设置正确
gcc -v
g++ -v

在这里插入图片描述
在这里插入图片描述
如此C++编译器安装完毕

更换python版本

TX2的默认python是2.x的,这里强烈推荐使用3.6.
具体操作和gcc差不多不重复

安装perl

没啥坑,安装然后验证一下就好了

sudo apt install perl
perl -v
安装libxcb

强烈推荐去下载xcb的源码
https://xcb.freedesktop.org/
在这里插入图片描述
后者依赖前者,所以对应相同版本的两个都要下载
在这里插入图片描述
在这里插入图片描述
各自解压后安装

sudo ./configure 
sudo make -j4
sudo make install

编译

看readme.md中的内容开始编译
在这里插入图片描述
选择自己喜欢的目录,我喜欢放在opt下面

./configure -prefix /opt/Qt6

如此makefile文件生成出来了。
在这里插入图片描述
但是直接make,会发生错误,有知道的同学、同志可以告诉我为什么
这里使用cmake --build命令编译。但是千万不用使用parallel并行编译有坑

//不用使用
cmake --build . --parallel
//老老实实基础编译
cmake --build .

Qt安装

因为我们前面通过configure配置过安装目录了,直接安装即可

sudo cmake --install .

第一次超过15%,一般都是没问题,如果后面卡了,多试几次。在15%前面卡了的话,看下下面的踩坑,可能有解决。

配置环境变量

sudo gedit ~/.bashrc

写入以下内容

export QTDIR=/data/opt/Qt6
export PATH=$QTDIR/bin
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH

其中QTDIR是我Qt6的安装目录
刷新启用环境变量

. .bashrc

验证下环境变量配置成功

qmake -v

在这里插入图片描述

Qt Creator

需要编译器的可以安装
前往之前下载qt源码的地方下载qtcreator的源码
在这里插入图片描述
解压后编译

生成makefile

并且指定最终的安装目录

mkdir build
cd build
cmake .. -DCMAKE_INSTALL_PREFIX=/data/opt/qtcreator7

在这里插入图片描述

编译
make

在这里插入图片描述

安装到特定目录

其实用之前cmake阶段的指定目录不需要在这里重新定目录,我自己编的时候上面忘记加了,问题不大。

sudo make install DESTDIR= /data/opt/qtcreator7

使用

qtcretor并不是必需的。完全可以在windows下写项目然后传去Tx2
生成项目文件

qmake -project

在这里插入图片描述
通过.pro文件生成makefile

qmake test2.pro

在这里插入图片描述
同文件夹下直接make生成可执行文件

make

在这里插入图片描述
直接使用

./test2

踩坑

gcc版本过高

最开始使用了gcc-11。虽然满足要求,但是出现如下错误。
大致的源码内容是

const chr16_t dummySubject = 0;
//这里取这个静态变量的地址会直接报错
&dummySubject;

在这里插入图片描述
咨询了一下研究过C++的师兄,他的建议是谨慎选择C++编译器的版本和供应商。比较乱而且坑很多。

并行编译

问题还是TX2的ARM64_v8太弱了。后者需要的内容,前者半天都没编译成功。
在这里插入图片描述
而且在使用 --parallel指令之后,虽然很快,但是会吃满资源,导致VNC和SSH难以连接上TX2,让我们对TX2发生了啥一无所知。

容量问题

按理说这个本不该是问题,偏偏发生了。TX2自带的32G容量根本不够。
如果有QT老手能够做到部分编译就不会有这个问题。如果要求不高,直接安装qtbase应该也能满足一些要求。
申请块固态吧,各位。
![在这里插入图片描述](https://img-blog.csdnimg.cn/9b1db6271ece45cca9dad48f62596e2a.png在这里插入图片描述
装到一半吃了10个G
在这里插入图片描述

环境变量配置

本来按步给第二台TX2安装应该是顺风顺水的事,环境变量配置的时候发现原本就有一些内容,甚至导致基础的bash比如gedit失效。
千万不要慌
先使用下面这行使之前配置的环境变量失效,再重新写

 export PATH=/bin:/usr/bin:/usr/sbin:$PATH

改成类似下面的写法:
在这里插入图片描述
然后再使用. .bashrc命令就好了

xcb缺失

使用qtcreator5
在这里插入图片描述
使用qtcreator7
在这里插入图片描述

libqxcb.so 缺失。原本这个文件应该再plugins/platforms下,如果没有检查安装前置中的libxcb的安装流程。
但是既然它没有只能自己编译。
就一定要单个模块进行编译了。

杂七杂八的问题

一般如此操作后,几乎都可以安装
如果不行。每行没加sudo的都加个sudo
甚至
添加如下环境变量,再看看哪里有问题。

export QT_DEBUG_PLUGINS=1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值