Qte-4.8.6移植(二)之Qte-4.8.6源码编译与移植

时间:2024-04-06 10:38:41

    写的有点水,毕竟我也是小白,等都懂了会完善的,努力向大佬靠近。这篇就是qte-4.8.6的源码编译吧,我一开始看上一篇给的视频里的,跟着做,人后出了一堆问题,大都是什么东西没找到原因,然后就找到另外大佬的博客弄的,也就是这个:https://www.cnblogs.com/Jasonsblog/p/3757985.html ;然后编过了,嗯,写这边博文的目的是为了记录下。

    首先是qte-4.8.6的源码,我直接给链接:http://download.qt.io/official_releases/qt/4.8/4.8.6/;下载后缀为.tar.gz的,然后是解压,使用 tar -xvzf qt-everywhere-opensource-src-4.8.6.tar.gz 就好,然后重要的一步,进入解压后的目录下的交叉编译g++的配置文件下 也就是 cd qt-everywhere-opensource-src-4.8.6/mkspecs/qws/linux-arm-g++/ ;然后修改qmake.conf 直接vi qmake.conf 然后在# modifications to g++.conf 下面的每项后面加上 -lts 也就是改成这样的:

QMAKE_CC                = arm-linux-gcc -lts
QMAKE_CXX               = arm-linux-g++ -lts
QMAKE_LINK              = arm-linux-g++ -lts
QMAKE_LINK_SHLIB        = arm-linux-g++ -lts

    然后回到源码目录,也就是qt-everywhere-opensource-src-4.8.6目录下,这里有两种配置编译的方法,两种我都试过了,亲测,首先是第一种,也就是上面引用的博文大佬里的,新建一个脚本文件,内容如下:

#!/bin/bash
./configure \
-opensource \
-confirm-license \
-release -shared \
-embedded arm \
-xplatform qws/linux-arm-g++ \
-depths 16,18,24 \
-fast \
-optimized-qmake \
-pch \
-qt-sql-sqlite \
-qt-libjpeg \
-qt-zlib \
-qt-libpng \
-qt-freetype \
-little-endian -host-little-endian \
-no-qt3support \
-no-libtiff -no-libmng \
-no-opengl \
-no-mmx -no-sse -no-sse2 \
-no-3dnow \
-no-openssl \
-no-webkit \
-no-qvfb \
-no-phonon \
-no-nis \
-no-opengl \
-no-cups \
-no-glib \
-no-xcursor -no-xfixes -no-xrandr -no-xrender \
-no-separate-debug-info \
-nomake examples -nomake tools -nomake docs \
-qt-mouse-tslib \
-I/usr/local/tslib/include \
-L/usr/local/tslib/lib

    然后保存,添加可执行权限,再执行;

    执行完后在 make 然后是 make install 。编译完成生成的文件在 /usr/local/Trolltech/QtEmbedded-4.8.6-arm/ 目录下。

然后介绍第二种方法,也就是第一篇视频里的脚本文件,同样新建脚本文件内容如下:

#!/bin/bash

#Qt version 4.8.6
VERSION=4
PATCHLEVEL=8
SUBLEVEL=6

#rm -rf qt-everywhere-opensource-src-$VERSION.$PATCHLEVEL.$SUBLEVEL
#rm -rf /usr/local/Trolltech/QtEmbedded-$VERSION.$PATCHLEVEL.$SUBLEVEL-arm
#tar xfvz qt-everywhere-opensource-src-$VERSION.$PATCHLEVEL.$SUBLEVEL.tar.gz
#cd qt-everywhere-opensource-src-$VERSION.$PATCHLEVEL.$SUBLEVEL
echo yes | ./configure -opensource -embedded arm -xplatform qws/linux-arm-g++  -no-webkit -qt-libtiff -qt-libmng  -qt-mouse-tslib -qt-mouse-pc -no-mouse-linuxt

make -j4
sudo -s make install

    注释掉的内容只是前期解压的部分,然后给予权限执行就可以了,编译完成同样在/usr/local/Trolltech/QtEmbedded-4.8.6-arm/ 目录下。如果编译遇到问题,请看我引用的博文,还有第一篇的tslib的内容。

    最后是移植,直接看引用的链接大佬的吧,在上面。

    再接上Qt Creator的编译环境吧,首先下载源码:我的是最新的qt-opensource-linux-x64-5.10.1.run;然后直接安装,路径的话可以跟Qte的同目录方便找,然后打开 菜单栏选择 Tools-> Options,然后选择build&run:

Qte-4.8.6移植(二)之Qte-4.8.6源码编译与移植

先选择Compilers 然后点击add ,先选择GCC选择C,然后名字可以命名为arm-linux-gcc,然后选择arm-linux-gcc的目录选择arm-linux-gcc,如图:

Qte-4.8.6移植(二)之Qte-4.8.6源码编译与移植

    然后Apply 再OK。

然后再add一个,GCC->C++,名字可以为arm-linux-g++,然后选择arm-linux-g++目录中的arm-linux-g++,再Apply然后OK。

    然后菜单选择Qt Versions,点击add,名字随意,路径找到QtE目录下的bin目录下的qmake,选择打开,然后Apply,再OK。如图:

Qte-4.8.6移植(二)之Qte-4.8.6源码编译与移植

    然后点击Kits,名字随意,然后Compiler栏C选择刚才的arm-linux-gcc,C++选择arm-linux-g++;Qt Versions栏选择刚才创建的,然后Apply ,再OK,如图:

Qte-4.8.6移植(二)之Qte-4.8.6源码编译与移植

然后就可以拿来编译了。