64位hi3531d编译QT5.15.10源码

hi3531d编译QT5.15.10源码


1.安装交叉编译工具链

1.工具链一般随开发板提供,我的交叉编译工具链是aarch64-himix200-linux.tar.gz
2.解压 交叉编译工具链

tar -xvf aarch64-himix200-linux.tar.gz -C /opt/hisi-linux/x86-arm

3.在~/.bashrc 最后一行添加环境变量

export PATH=$PATH:/opt/hisi-linux/x86-arm/aarch64-himix200-linux/bin

4.使环境变量生效

source ~/.bashrc

5.输入aarch64-himix200-linux-gcc -v

看交叉编译工具链是否可用

2.下载tslib源码和QT5.15.10源码

tslib是一个触摸屏的库
tslib地址
也使用git clone拉下来 git clone https://github.com/kergoth/tslib

QT5.15.10地址

3.编译tslib

./autogen.sh
echo "ac_cv_func_malloc_0_nonnull=yes" >arm-linux.cache
./configure --host=aarch64-himix200-linux --prefix=/opt/hisi-linux/x86-arm/aarch64-himix200-linux/qt/Qt_arm5.15.10/tslib CC=aarch64-himix200-linux-gcc --cache-file=arm-linux.cache

make
make install

注意:将 --host=aarch64-himix200-linux和 CC=aarch64-himix200-linux-gcc 改成自己的交叉编译工具。–prefix指定的安装路径也能改成自己的。

4.QT库交叉编译

1.修改qt库的qmake.conf配置文件,在qt源码解压后的qtbase/mkspesc文件夹下,我的是linux-aarch64-gnu-g++,如果是32位的arm开发板,一般是linux-arm-gnueabi-g++。

tar -xvf qt-everywhere-opensource-src-5.15.10.tar.xz
cd qt-everywhere-src-5.15.10/qtbase/mkspecs
cd linux-aarch64-gnu-g++     //可改成你自己对应平台
vi qmake.conf
:%s/aarch64-linux-gnu/aarch64-himix200-linux     //将其中的交叉编译工具改成自己的
:wq

2.配置qt库

在源码目录下新建一个config.sh的脚本文件
文件内容:

/configure -prefix /opt/hisi-linux/x86-arm/aarch64-himix200-linux/qt/Qt_arm5.15.10 \
    -release \
    -confirm-license \
    -opensource \
    -skip qt3d \    #取消QT3D功能,嵌入式设备一般来说性能不够
    -skip qtactiveqt \
    -skip qtcanvas3d \
    -skip qtcharts \
    -skip qtconnectivity \
    -skip qtdatavis3d \
   -skip qtdeclarative \
   -skip qtgamepad \
   -skip qtandroidextras \
   -skip qtdoc \
   -skip qtwebchannel \    #取消web功能,也是性能问题
   -skip qtwebengine \
   -skip qtwebglplugin \                                                                                                                                                                                                                    
   -skip qtwebview \                                                                                                                                                                                                                        
   -xplatform linux-aarch64-gnu-g++ \      #指定上一步的修改arm平台                                                                                                                                                                                                                                                                                                                                                                                                                                      
   -make libs \                                                                                                                                                                                                                             
   -optimize-size \                                                                                                                                                                                                                         
   -pch \                  
   -no-opengl \
   -no-sse2 \
   -no-openssl \
   -no-cups \
   -no-glib \
   -no-dbus \
   -no-xcb \
   -no-pkg-config \
   -no-separate-debug-info \
   -nomake tests \
   -nomake examples \
   -nomake tools \
   -no-sql-sqlite \
   -no-iconv \
   -pch \
   -shared \
   -qt-libjpeg \
   -qt-zlib \
   -qt-libpng \
   -tslib \
   -I /opt/hisi-linux/x86-arm/aarch64-himix200-linux/qt/Qt_arm5.15.10/tslib/include \
   -L /opt/hisi-linux/x86-arm/aarch64-himix200-linux/qt/Qt_arm5.15.10/tslib/lib \
   -recheck-all \
   -bundled-xcb-xinput  #只能在5.15版本开启
exit

运行bash config.sh配置QT
编译make -j16
安装make install

成功后在
/opt/hisi-linux/x86-arm/aarch64-himix200-linux/qt/Qt_arm5.15.10路径下能看编译好的qt库了
bin include lib mkspecs

5.测试运行

写一个demo.cpp

#include 
#include 
 
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
 
    std::cout << "hello from Qt! \n";
    return a.exec();
}

将编译好的demo和Qt_arm5.15.10/lib上传到开发板,运行。正常情况下,输出如下:

./demo
hello from Qt!

你可能感兴趣的:(qt,arm开发,开发语言)