QtWebengine使用opus和silk编解码器构建错误

时间:2017-11-07 05:12:43

标签: makefile neon opus qt5.9

我正在尝试使用QtWebengine为arm平台构建Qt5.9.1。 这些是我传递给构建的一些基于体系结构的参数。

QMAKE_CFLAGS_RELEASE += -march=armv7-a -mcpu=cortex-a9 
QMAKE_CXXFLAGS_RELEASE += -march=armv7-a -mcpu=cortex-a9

默认情况下,我可以看到构建也适用于这些值。

-mfloat-abi=hard -mtune=generic-armv7-a -mfpu=vfpv3-d16 -mthumb

THIS是我面临的错误。

据我所知,在皮质-a9霓虹灯是可选的,我的特定SoC不支持霓虹灯。 -print-multi-lib也提供了这个功能     arm400-linux-g ++ -print-multi-lib

armv5te_arm9;@mcpu=arm926ej-s
a9;@mcpu=cortex-a9
a7;@mcpu=cortex-a7
armv5te_arm9_soft;@mcpu=arm926ej-s@mfloat-abi=soft
armv5te_arm9_vfp;@mcpu=arm926ej-s@mfloat-abi=softfp@mfpu=vfp
a9_soft;@mcpu=cortex-a9@mfloat-abi=soft
a9_softfp_vfp;@mcpu=cortex-a9@mfloat-abi=softfp@mfpu=vfp
a9_softfp_vfpv3-d16;@mcpu=cortex-a9@mfloat-abi=softfp@mfpu=vfpv3-d16
a7_soft;@mcpu=cortex-a7@mfloat-abi=soft
a7_softfp_vfpv4;@mcpu=cortex-a7@mfloat-abi=softfp@mfpu=vfpv4
a7_softfp_neon-vfpv4;@mcpu=cortex-a7@mfloat-abi=softfp@mfpu=neon-vfpv4
a7_hard_neon-vfpv4;@mcpu=cortex-a7@mfloat-abi=hard@mfpu=neon-vfpv4

我试过在mkspecs中传递这三个可能的架构参数。

QMAKE_CFLAGS_RELEASE += -march=armv7-a -mcpu=cortex-a9 -mfloat-abi=soft
QMAKE_CXXFLAGS_RELEASE += -march=armv7-a -mcpu=cortex-a9 -mfloat-abi=soft 

为此我得到了

"arm400-linux-g++: error: -mfloat-abi=soft and -mfloat-abi=hard may not be used together".

我也试过传递这些参数

-mcpu=cortex-a9 -mfloat-abi=softfp -mfpu=vfp

-mcpu=cortex-a9 -mfloat-abi=softfp -mfpu=vfpv3-d16

但它有同样的效果。

libxxxx.a(yyyyy.o) uses VFP register arguments, libQt5WebEngineCore.so.5.9.1 does not

我的选项用完了。为什么会出现这个问题?

1 个答案:

答案 0 :(得分:0)

您必须使用与源代码相同的VFP选项构建所有库。

根据ATPCS(ARM-Thumb过程调用标准),浮点参数由VFP寄存器传递(如果可用)。否则,它们由ARM整数寄存器传递。

如果使用soft-float选项编译lib A,则由于lib B的ABI冲突而无法调用其函数,反之亦然。

如果您没有某些lib的源代码而是二进制文件,那么您唯一的选择就是将其他项目构建选项与lib相匹配。

但是,您可能会发现具有各种构建选项的库的不同版本。