小编Ben*_*row的帖子

关于Raspberry PI Rev. 1的Qt-QML JIT

我和我的朋友正在研究由Raspberry PI B +和一个小触摸屏驱动的便携式互联网收音机.我正在使用Qt-5.9开发接口,我已经为PI的ARMv6 CPU交叉编译了.我的界面正在使用QML,所以当我启动我的应用程序时,每一个工作但QML动画都是滞后的.因此控制台告诉我QML JIT没有启用(JIT is disabled for QML. Property bindings and animations will be very slow. Visit https://wiki.qt.io/V4 to learn about possible solutions for your platform.),所以我在给定的页面上查找了关于V4引擎的信息,经过大约两周的试用,我发现问题是缺少使用Thumb的可能性-1指令集,V4需要,以及在Pi上运行的Raspbian Jessie的HardFP配置.所以现在我认为如果我让交叉编译器使用Thumb-1集合它会工作.我尝试了很多,最后我遇到了两个问题.

  1. 当我-mthumb在命令行中使用该标志时,我收到此错误:sorry, unimplemented: Thumb-1 hard-float VFP ABI.我需要Thumb-1,我无法更改整个操作系统的Hard-Float实现,并且ARMv6没有合适的编译器标志来禁用VFP.
  2. 当我-mthumb-interwork在命令行中使用该标志时,编译工作,但由于ABI设置,可执行文件不会更改(https://gcc.gnu.org/onlinedocs/gcc-4.8.5/gcc/ARM-Options .html #ARM-Options)(-mthumb-interwork: ... In AAPCS (the ABI) configurations this option is meaningless.).我尝试了所有可能的ABI但没有一个工作并编译正在运行的程序.

我也读过关于RPi的一些补丁,但很久以前它们被包含在上游Qt中.

我稍微修改了编译器参数(文件:QT/qtbase/mkspecs/devices/linux-rasp-pi-g ++/qmake.conf):

QMAKE_CFLAGS           += \
                      -mthumb \
                      -mfpu=vfp \
                      -mtune=arm1176jzf-s \
                      -march=armv6zk \
                      -mabi=aapcs-linux
Run Code Online (Sandbox Code Playgroud)

(此配置不起作用)

我使用以下参数配置QT:

./configure -release -opengl …
Run Code Online (Sandbox Code Playgroud)

c++ qt jit qml raspberry-pi

12
推荐指数
1
解决办法
942
查看次数

标签 统计

c++ ×1

jit ×1

qml ×1

qt ×1

raspberry-pi ×1