html5 响应式音乐网站,wordpress 页面显示文章,加盟网站推广,wordpress文章双语什么是交叉编译#xff1f;
简单说#xff0c;就是在当前系统平台上#xff0c;开发编译运行于其它平台的程序。
比如本文硬件环境是x86平台#xff0c;但是编译出来的程序是在arm64架构、mips64等架构上运行
本文使用的操作系统#xff1a;统信UOS家庭版22.0
一、安装…什么是交叉编译
简单说就是在当前系统平台上开发编译运行于其它平台的程序。
比如本文硬件环境是x86平台但是编译出来的程序是在arm64架构、mips64等架构上运行
本文使用的操作系统统信UOS家庭版22.0
一、安装QT5如果已安装跳过此步
sudo apt update
sudo apt install qtbase5-dev -y
sudo apt install qtcreator -y
二、安装编译相关组件
sudo apt install build-essential libgl1-mesa-dev gperf libclang-dev -y
#安装python环境如果你的程序中不需要调用python可以不装
sudo apt install python -y
sudo apt install python-dev -y
sudo apt install python-pip -y
#安装aarch64arm64编译链工具。国产CPU如飞腾、华为麒麟等都是这个架构
sudo apt install g-aarch64-linux-gnu -y
sudo apt install gcc-aarch64-linux-gnu -y
#安装mips64el编译链工具。龙芯3A3000、3A4000等是此架构。龙芯最新的LoongArch架构似乎还没有编译链工具
sudo apt install gcc-mips64el-linux-gnuabi64 -y
sudo apt install g-mips64el-linux-gnuabi64 -y
三、下载QT5源码
QT官方下载地址Index of /archive/qthttps://download.qt.io/archive/qt 根据自身需求选择一个版本下载。源码版本不需要和当前安装的一致但最好不要低于当前安装的版本。QT6和QT5差别太大不要选择。
这里我随手选了一个5.12.2的版本可以直接在网页上下载、用下载工具下载、还可以使用命令下载
#下载源码
wget https://download.qt.io/archive/qt/5.12/5.12.2/single/qt-everywhere-src-5.12.2.tar.xz
#下载好后解压源码
tar -xvf qt-everywhere-src-5.12.2.tar.xz 四、配置和编译源码
配置编译QT5的aarch64架构源码
进入刚才解压好的源码目录中打开终端输入
#配置编译参数
./configure -release -opensource -confirm-license -xplatform linux-aarch64-gnu-g -prefix /usr/local/qt5.12.2arm -nomake examples -no-opengl -silent -qpa linuxfb
如图 其中/usr/local/qt5.12.2arm 是编译后的安装目录可自行修改
执行成功的话如图 编译
make -j 12
-j 12参数表示使用12个线程进行编译根据电脑的CPU线程数进行设置即可。
编译过程较长如果编译过程中需要进行其它操作适当减少线程数以免操作太卡。
编译成功后如图 将编译好的文件安装到指定位置安装位置在前面配置参数时已设置
sudo make install 2.配置编译QT5的mips64架构源码
先将前面解压的qt-everywhere-src-5.12.2文件夹改名或者删除然后重启一下电脑
为什么要重启因为我在编译完aarch64之后接着编译mips64时编译出错重启之后才正常。
为了避免不必要的错误因此建议先重启一下。
使用命令重新解压源码
tar -xvf qt-everywhere-src-5.12.2.tar.xz
QT源码里并没有mips64的编译项因此这里需要手动创建。
进入刚才解压的源码目录再进入其下级目录qtbase/mkspecs 如图 找到linux-aarch64-gnu-g文件夹将其复制一份。如图 将其改名为linux-mips64el-g 然后双击进入里面有两个文件qmake.conf、qplatformdefs.h
打开qmake.conf文件打开后如图 将aarch64全部替换为mips64el、gnu替换成gnuabi64替换后如图 修改完成保存关闭文件即可。
回到源码根目录在终端中执行参数配置
./configure -release -opensource -confirm-license -xplatform linux-mips64el-g -prefix /usr/local/qt5.12.2mips64 -nomake examples -no-opengl -silent -qpa linuxfb
如图 执行成功如图 编译安装和aarch64是一样的
make -j12 #编译源码。注意根据自已CPU的线程数修改12这个数
sudo make install #安装编译好的源码
五、配置QT
打开Qt Creator选择 工具-选项-Kits-Qt Versions 如图 点击右侧的“添加...”按钮在弹出的窗口中选择前面编译安装好的QT目录下的qmake如图 添加好后点击右下角的“Apply”按钮。然后点击“构建套件(Kit)”选项卡 点击右侧“添加”按钮配置如图 其中名称可自行修改
编译器可以选择gcc只是我比较喜欢Clang所以这里选的Clang
注意Qt mkspec 一定要填
至于红色的感叹号这个不用在意不影响编译。
mips64的配置也差不多 六、验证测试
现在创建一个工程来验证一下交叉编译是否正常。
先测试aarch64架构 需要注意的是异架构的程序是不能直接运行的。所以我们不运行它直接点击左下方的“锤子”或者按CtrlB来构建。 编译没有出错。使用file命令看一下编译后的文件 如图所示编译出来的程序确实是ARM aarch64 架构
再看一下MIPS64的编译结果 OK搞定收工..
关于龙芯最新的“龙”LoongArch架构似乎还没有编译链工具因此还没法交叉编译。。