Qt4.8.6移植到海思HI3536

一、编译QT

1、下载qt-everywhere-opensource-src-4.8.6.tar.gz,解压,不会的向隅而泣,反思自己的智商是否适合做码农。

2、在源码目录的mkspecs/qws目录下添加一个文件夹linux-arm-hisiv400-g++,然后把linux-arm-g++下的文件复制到这个新文件夹里。

3、打开mkspecs/qws/linux-arm-hisiv400-g++/qmake.conf,将arm-linux-全部修改为arm-hisiv400-linux-。有人觉得没必要建文件夹、拷贝文件,直接改linux-arm-g++文件夹里的文件就行,有这种想法的请向隅而泣,反思自己是否具有一个合格码农的酥痒(素养)。

4、在# modifications to linux.conf这行注释上头添加如下两行内容:

    QMAKE_CFLAGS += -fpermissive

    QMAKE_CXXFLAGS += -fpermissive

    然后保存文件

5、修改两个工程文件:

    1)examples/examples.pro,删除行contains(QT_CONFIG, webkit): SUBDIRS += webkit

         否则编译example webkit时会报错
    2)vim demos/demos.pro,删除两行contains(QT_CONFIG, webkit):contains(QT_CONFIG, svg):SUBDIRS += demos_browser和demos_browser.subdir = browser
         否则编译demo browser会出错

6、在源码目录下创建compile.sh,内容如下:

#/bin/bash

./configure --prefix=./qt_hi3536 -no-pch -xplatform qws/linux-arm-hisiv400-g++ -arch arm -embedded arm -no-freetype -qt-mouse-pc -no-webkit -no-largefile -fast -release -no-qt3support -no-cups -no-opengl -no-phonon -phonon-backend -no-scripttools -no-libtiff -no-gif -no-libmng -no-nis -no-cups -no-svg -qt-mouse-pc

make

make install

     然后赋予compile.sh可执行权限chmod +x compile.sh,运行该脚本开始编译。有人说直接输入脚本里的命令不就行了吗?对,不嫌麻烦你就编译一次输一次好了,反正浪费的不是我的时间。另外我这个板子不带触摸屏, 因此编译时候没带libts,需要的自己改配置参数,不会改的自己看configure的帮助,不会看或看不懂请向隅而泣,该反思啥自己琢磨。

 

二、设置3536文件系统

1、在3536文件系统的/etc/profile里添加如下内容:


export QT_INSTALL_PATH=/opt/qt
export LD_LIBRARY_PATH=/lib:/usr/lib:${QT_INSTALL_PATH}/lib:${LD_LIBRARY_PATH}
export QT_QWS_FONTDIR=${QT_INSTALL_PATH}/lib/fonts
export QT_QWS_DISPLAY=linuxFB:/dev/fb0

    前面说了我没有触摸屏,所以ts的路径我这里不需要,需要的请自行查找资料,不会找的请向隅而泣……编辑好之后运行source /etc/profile使环境变量立即生效,重启也可以。

2、找到3536 sdk的hifb例程,必须对这个例程做一些修改。具体改法就不说了,只说下思路,不会改的请向隅而泣,这都不会还当什么码农?

      1)这个例程运行之后需要手工输入字符,以选择运行哪个示例,修改为自动进入第四个分支,也就是输入字符'4'对应的那个分支;

      2)4分支使用的是compression模式,在相应的ioctl函数中,禁用这种模式,提示:需要修改的位置有个注释//open compress;

      3)在2)的ioctl函数之后加入代码使程序运行到这里就挂起,不再向后运行。

      4)编译修改后的hifb例程,将可执行文件拷贝到文件系统待用。

      解释一下为什么要这么做。qt需要/dev/fb0处于rgb8888非压缩模式,因此需要这个程序对fb就行初始化。开发正式产品时,可以将hifb的这部分代码加进qt程序,或者另外写一段正式的配置程序。

3、将qt编译生成的文件拷贝到3536的文件系统,位置要与“二 1、”所述环境变量相符,不符你就自己改环境变量,不会弄的向隅而泣。

 

三、运行qt demo

1、首先运行修改重编译过的hifb,对/dev/fb0进行配置,注意要用后台模式运行,执行./sample_hifb & 后面一定要加&,否则没法打开qt程序。运行成功,此时画面为绿色。

2、进入qt demo目录,例如demos/deform/,执行./deform -qws,这时就可以看到例程效果了。

3、原生内核支持鼠标,可以直接插入usb鼠标操作qt界面上的控件。

 

四、我还移植了qt5.6.0,也能运行,方法大同小异。


 

 

你可能感兴趣的:(LINUX,-,令你死,C++,-,吹泡泡)