最近需要在NVIDIA小盒子上面跑一个程序,一开始想着在Ubuntu x64下交叉编译一版,后来发现libqxcb.so
这个库在configure时就会一直报错,多方查找怀疑可能是由于硬件不支持在x64环境下编译AMR架构的xcb库。
所以最后在ARM下直接编译Qt源码了,在ARM下是可以编译成功 libqxcb.so
的,由于没有ARM下的QtCreator所以需要一起编译。
一、编译Qt源码
1. 编译前环境配置
sudo apt-get update
sudo apt-get install gperf
sudo apt-get install libxcb*
sudo apt-get install build-essential libgl1-mesa-dev libglu1-mesa-dev libegl1-mesa-dev freeglut3-dev
sudo apt-get install flex
sudo apt-get install bison
sudo apt-get install libx11-dev libxext-dev libxtst-dev
sudo apt-get install libgl1-mesa-dev libglu1-mesa-dev
sudo apt-get install libxkbcommon-x11-dev
sudo apt install libwayland-dev // 编译源码时qtmultimedia中报错wayland-client.h
sudo apt install libclang-dev llvm // 这俩是qtdoc的,要编译文档才装,因为这比较大
2. 编译前配置
./configure -xcb -prefix /opt/Qt5.15.2 -skip qtlocation
解释:
-prefix 最后安装路径
-skip 跳过某个模块(qtlocation编译不过,各种尝试都没过,最终才跳过,如果知道如何可以编译过请通知,谢谢)
提示 webengine
警告时,可以先用上面命令,然后通过 qmake
单独编译一下,可能会缺依赖库自己查找一下
qmake webengine源码路径/webengine.pro
make
sudo make install
二、编译QtCreator
下载地址:https://download.qt.io/archive/qtcreator/
编译时需要注意,QtCreator源码一定要和Qt源码对应,比如QtCreator 8.0源码就无法通过 Qt5.15的qmake编译成功,会报错需要Qt6的源码编译
是否适合当前版本,可以通过README.md
中介绍确定
编译步骤:
qmake ./qtcreator.pro
make
// PATH 为install路径,自行修改,如果不在非需sudo目录安装可以不加sudo
sudo make install INSTALL_ROOT=PATH