ubuntu x86_64编译qt arm/aarch64库
参考https://blog.csdn.net/qq_30155503/article/details/80118705
pc机:ubuntu18.04 x86_64
树莓派:ubuntu18.04 aarch64
一、下载qt源码
1、因为pc机已经安装过qt,在qt安装路径下查看安装qt时是否保留了源码,如果保留了则可直接使用该源码,否则需要下载qt源码
$ cd QT5/5.11.1
可以看到我安装qt时编译了android x86、android arm、linux gcc_64 三个版本,并且保留了源码Src
2、为防止过程中破环或丢失源码,拷贝源码备份用于编译arm库
$ cp -r Src Src-arm
$ cp -r Src Src-aarch64
二、安装 arm-linux-gcc、 gcc-aarch64-linux交叉编译器
1、apt-get 自动安装
$ sudo apt-get install gcc-arm-linux-gnueabihf
$ sudo apt-get install g++-arm-linux-gnueabihf
$ sudo apt install gcc-aarch64-linux-gnu
$ sudo apt install g++-aarch64-linux-gnu
2、查看是否安装成功
$ arm-linux-gnueabihf-gcc -v
$ arm-linux-gnueabihf-g++ -v
$ aarch64-linux-gnu-gcc --version
$ aarch64-linux-gnu-g++ --version
3、测试
编写一个简单的测试文件test.c,内容如下
#include <stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}
编译test.c
$ arm-linux-gnueabihf-gcc -o test-arm test.c
$ aarch64-linux-gnu-gcc -o test-aarch64 test.c
在书梅派上运行test-aarch64成功,运行test-arm报错:
-sh: ./test-arm: No such file or directory
解决:
查看arm系统,发现为aarch64,所以arm-linux-gnueabihf-gcc编译的程序在该系统上出错,如果使用aarch64-linux