2017-11-07 9 views
0

QtWebengineを使ってアームプラットフォーム用にQt5.9.1をビルドしようとしています。 これはビルドに渡すアーキテクチャベースの引数です。QtWebengineでopusとsilkコーデックでエラーが発生する

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は私が直面しているエラーです。

私が知る限り、cortex-a9ネオンはオプションで、私の特定のSoCはネオンをサポートしていません。 また-print-マルチlibには、この arm400-linuxの-G ++ -print-マルチlibの

armv5te_arm9;@mcpu=arm926ej-s 
a9;@mcpu=cortex-a9 
a7;@mcpu=cortex-a7 
armv5te_arm9_soft;@[email protected]=soft 
armv5te_arm9_vfp;@[email protected][email protected]=vfp 
a9_soft;@[email protected]=soft 
a9_softfp_vfp;@[email protected][email protected]=vfp 
a9_softfp_vfpv3-d16;@[email protected][email protected]=vfpv3-d16 
a7_soft;@[email protected]=soft 
a7_softfp_vfpv4;@[email protected][email protected]=vfpv4 
a7_softfp_neon-vfpv4;@[email protected][email protected]=neon-vfpv4 
a7_hard_neon-vfpv4;@[email protected][email protected]=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 

ここではオプションが不足しています。なぜこの問題が起こっていますか?

答えて

0

すべてのライブラリをソースコードと同じVFPオプションでビルドする必要があります。

ATPCS(ARM-Thumbプロシージャコール標準)によれば、フロートパラメータは、使用可能であれば、VFPレジスタによって渡されます。それ以外の場合は、ARMの整数レジスタに渡されます。

lib Aがsoft-floatオプションでコンパイルされている場合、lib BからのABI競合またはその逆のために関数を呼び出すことはできません。

特定のlibのソースコードではなくバイナリがある場合、唯一のオプションは他のプロジェクトのビルドオプションをlibに一致させることです。

ただし、さまざまなビルドオプションを持つライブラリのさまざまなバージョンが見つかる可能性は十分です。

+0

私の場合、私は '-mfloat-abi = softfp'を渡してsoftfpを使うようにビルドしようとしました。それでもエラーの場合は '-mfloat-abi = hard'です。忍者がどのようにビルドしてこれらの値を修正しているのか、私は本当に理解できません。 lib Aとlib Bの両方が1つのビルドからのものです。 –

+0

@Karプロジェクトにアセンブリファイルがありますか?アセンブリでは、ヘッダー内のグローバルビルドオプションを '.fpu'指示文でオーバーライドすることができます。また、SoCにVFPが搭載されている場合は、パフォーマンスが世界的に異なるため、VFPを使用する必要があります。 –

+0

私は[FILE](https://pastebin.com/JiGavCB4)を見つけました。これはqtwebengineにGNビルドのこれらの引数を修正していると思います。しかし、ファイルの変更を行う構文についてはわかりません。 '.pri'ファイルです。 –

関連する問題