X86平台交叉编译aarch64平台
操作系统:CentOS7.9.2009
交叉编译器的配置,网上有很多,我使用的是:
gcc-linaro-5.5.0-2017.10-x86_64_aarch64-linux-gnu.tar.xz
默认源代码交叉编译,不带openssl很简单,直接编译就可以。
这里只描述openssl支持。
1、首先交叉编译openssl库
下载openssl源代码,下载版本我是这样决定的,运行openssl version查看当前平台的openssl版本,然后下载对应版本的openssl源代码
解压后,交叉编译命令:
源代码加压在:/opt/openssl-1.0.2k
cd /opt/openssl-1.0.2k/
./config no-asm shared no-async --prefix=$(pwd)/install --cross-compile-prefix=aarch64-linux-gnu-
注意这里,最后面就是gnu- 没有gcc或g++
可能会提示m64错误
cc1: error: unrecognized command line option "-m64"
vi 打开Makefile 将编译选项中的 -m64 删掉,还有一个是m64的配置,直接注释即可
保存后,重新执行config,成功后,执行make && make install
make install完成后,会在安装在当前目录的install目录
好了,到这里openssl交叉编译完成了
现在来看Qt交叉编译。
下载Qt对应版本的源代码,我用的是Qt5.5.0
放在/opt目录下
cd /opt/qt-everywhere-opensource-src-5.5.0/
./configure -v -release -extprefix /opt/aarch64-qt -xplatform linux-aarch64-gnu-g++ -no-opengl -nomake tests -no-compile-examples -nomake examples -qt-libpng -qt-libjpeg -qt-sql-sqlite -openssl -I/opt/openssl-1.0.2k/install/include -L/opt/openssl-1.0.2k/install/lib -lssl -lcrypto
重要的是openssl选项
-openssl -I/opt/openssl-1.0.2k/install/include -L/opt/openssl-1.0.2k/install/lib -lssl -lcrypto
configure没有报错,完成后,
执行
gmake
gmake install
安装成功