CentOS7环境下交叉编译(银河麒麟)
需求说明:在CentOS环境中搭建 银河麒麟交叉编译环境+qt5.9.5静态编译库⽂件
1.准备交叉编译器,我的版本是gcc-linaro-6.5.0-2018.12-x86_64_;
将源码拷贝到/opt⽬录下解压;
在/etc/profile中加⼊路径:export PATH=$PATH:/opt/gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu/bin
然后使⽤reboot重启;
使⽤aarch64-linux-gnu-g++ -v 查看交叉编译器版本;
版本与⾃⼰设置的⼀致即可;
2.下载Qt5.9.5源码,可在官⽹进⾏下载;将Qt源码拷贝到/opt/Qt5/⽬录中(没有⽬录则可以使⽤mkdir 进⾏新建)进⾏解压,与此同时在与源码⽂件夹同级⽬录中建⽴⼀个Qt5-9-5-static⽬录,⽤于存放编译完成的⽂件;
3.执⾏./configure 命令;命令如下:
CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ ./configure -static -release -nomake examples -qt-sqlite -qt-xcb -system-freetype -fontconfig -qt-zlib -qt-libpng -qt-libjpeg -no-qml-debug -no-opengl -no-angle -nomake tests -skip qtquickcontrols -skip qtquickcontrols2 -skip qtsensors -skip qtdoc -xplatform linux-aarch64-gnu-g++ -prefix
/opt/Qt/qt5.9.5-static
复制命令时 请不要将换⾏符复制进去;
执⾏时,可能会遇到的问题:
ERROR: Feature 'xcb' was enabled, but the pre-condition 'b' failed.
ERROR: Feature 'system-freetype' was enabled, but the pre-condition 'features.freetype && libs.freetype' failed.gnu编译器
ERROR: Feature 'fontconfig' was enabled, but the pre-condition '!config.win32 && !config.darwin && features.system-freetype && libs.fontconfig' failed.
⼀般情况下,可能会报这样3个问题,其中system-freetype 与fontconfig 交叉编译器中应该已经存在(也有可能我下载的编译器中是别⼈编译好的);可以进⾏查看;
xcb 错误,则需要下载xcb源码进⾏编译;
编译xcb时 需要提前编译:xcb-proto ,libXau,xproto三个依赖库;
下载完成后,分别解压编译;
编译xcb-photo 命令:CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ ./configure --prefix=/opt/libxcb/xcb-proto-static --host=aarch64-linux-gnu
然后将⽣产的⽂件拷⼊/opt/gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu下的对应⽬录中,通过命令:export
PKG_CONFIG_PATH=/opt/gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu/lib/pkgconfig设置为临时环境变量
编译xproto命令:CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ ./configure --enable-static --
prefix=/opt/libxcb/xproto-static --host=aarch64-linux-gnu
然后将⽣产的⽂件拷⼊/opt/gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu下的对应⽬录中,
编译libXau命令:CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ ./configure --enable-static --
prefix=/opt/libxcb/libXau-static --host=aarch64-linux-gnu
然后将⽣产的⽂件拷⼊/opt/gcc-linaro-6.5.0-2018.12-x86_64_aarch64-linux-gnu下的对应⽬录中,
然后重新进⼊解压后的Qt源码⽬录中,重新执⾏上诉configure操作,如果还有问题 则根据遇到的问题,下载对应源码进⾏相应编译;如果出现如下界⾯:
则表⽰configure操作成功。
执⾏gmake -j4 ;这个操作耗时⽐较久,(根据电脑性能40分钟⾄2个多⼩时之间);
执⾏gmake install ;这个操作10分钟应该可以完成;此时在/opt/Qt/qt5.9.5-static ⽬录下
出现这些⽂件应该就编译成功;
进⼀步查看,cd bin ⽬录中,查看是否有qmake⽂件;⾃此qt5.9.5 静态库编译成功;
4.测试交叉编译Qt静态库,
下载qtcreator ,然后配置构建环境;qmake路径选择为静态编译出的路径;gcc/g++ 路径选择为交叉编译器下的gcc与g++;gcc路径:
g++路径:
调试器路径:
qmake路径:
构建环境总览:
使⽤file 命令查看可执⾏⽂件的格式;
可执⾏权限。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论