Cubianでcubieboard2用のQTAVをビルドできません。

Cubianでcubieboard2用のQTAVをビルドできません。

作成しようとしています。QTAV図書館キューブボード2環境と問題が発生しました。私を助けてください。

qmakeはこう言います。

cubie@Cubian:~/QtAV/output$ qmake ../QtAV.pro
Project MESSAGE: BUILD_DIR=/home/cubie/QtAV/output
Info: creating cache file /home/cubie/QtAV/output/.qmake.cache
Project MESSAGE: target arch: arm
Project MESSAGE: target arch features:
Project MESSAGE: To disable config tests, you can use 1 of the following methods
Project MESSAGE: 1. create '.qmake.conf' in the root source dir, add 'CONFIG += no_config_tests'(Qt5)
Project MESSAGE: 2. pass 'CONFIG += no_config_tests' or '-config no_config_tests' to qmake
Project MESSAGE: 3. add 'CONFIG += no_config_tests' in /home/cubie/QtAV/user.conf
Project MESSAGE: To manually set a config test result to true, disable config tests and enable config_name like above
Checking for avutil... yes
Checking for avcodec... yes
Checking for avformat... yes
Checking for swscale... yes
Project MESSAGE: checking for optional features...
Checking for swresample... yes
Checking for avresample... no
Checking for gl... yes
Checking for avfilter... yes
Checking for sse4_1... no
Checking for openal... no
Checking for portaudio... yes
Checking for direct2d... no
Checking for gdiplus... no
Checking for dxva... no
Checking for xv... yes
Checking for vaapi... yes
Checking for libcedarv... yes
Project MESSAGE: To recheck the dependencies, delete '.qmake.cache' in the root of build dir, run qmake with argument 'CONFIG+=recheck' or '-config recheck’

それからそれをやり、これが最後のメッセージです。

g++ -c -pipe -isystem /home/cubie/QtAV/src -isystem /home/cubie/QtAV/src/.. -O2 -Wall -W -D_REENTRANT -fPIC -DBUILD_QTAV_LIB -D__STDC_CONSTANT_MACROS -DQTAV_HAVE_AVFILTER=1 -DQTAV_HAVE_SWRESAMPLE=1 -DQTAV_HAVE_PORTAUDIO=1 -DQTAV_HAVE_XV=1 -DQTAV_HAVE_GL=1 -DQTAV_HAVE_CUDA=1 -DQTAV_HAVE_VAAPI=1 -DQTAV_HAVE_CEDARV=1 -DQT_NO_DEBUG -DQT_OPENGL_LIB -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB -I/usr/local/Qt-5.3.1/mkspecs/linux-g++ -I/home/cubie/QtAV/src -I/usr/local/Qt-5.3.1/include -isystem /home/cubie/QtAV/src -I/home/cubie/QtAV -isystem /home/cubie/QtAV/src/QtAV -isystem /home/cubie/QtAV/src/cuda -isystem /home/cubie/QtAV/src/cuda/dllapi -I/usr/local/Qt-5.3.1/include/QtOpenGL -I/usr/local/Qt-5.3.1/include/QtWidgets -I/usr/local/Qt-5.3.1/include/QtGui -I/usr/local/Qt-5.3.1/include/QtCore -I.moc/5.3.1/QtAV -I. -o .obj/QtAV_linux_arm/VideoDecoderCedarv.o /home/cubie/QtAV/src/VideoDecoderCedarv.cpp
{standard input}: Assembler messages:
{standard input}:730: Error: selected processor does not support Thumb mode `vuzp.8 d0,d1'
{standard input}:731: Error: selected processor does not support Thumb mode `vuzp.8 d2,d3'

私はそれを使用していますキューバ人(キュービボードのDebianクローン):

cubie@Cubian:~/QtAV/output$ uname -a
Linux Cubian 3.4.75-sun7i #35 SMP PREEMPT Sat Feb 8 02:10:31 CST 2014 armv7l GNU/Linux

これは私のgccバージョンです。

cubie@Cubian:~/QtAV/output$ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/arm-linux-gnueabihf/4.6/lto-wrapper
Target: arm-linux-gnueabihf
Configured with: ../src/configure -v --with-pkgversion='Debian 4.6.3-14' --with-bugurl=file:///usr/share/doc/gcc-4.6/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-4.6 --enable-shared --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.6 --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --enable-gnu-unique-object --enable-plugin --enable-objc-gc --disable-sjlj-exceptions --with-arch=armv7-a --with-fpu=vfpv3-d16 --with-float=hard --with-mode=thumb --enable-checking=release --build=arm-linux-gnueabihf --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf
Thread model: posix
gcc version 4.6.3 (Debian 4.6.3-14)

私のCPU情報です

cubie@Cubian:~$ cat /proc/cpuinfo
Processor   : ARMv7 Processor rev 4 (v7l)
processor   : 0
BogoMIPS    : 2004.17

processor   : 1
BogoMIPS    : 2011.05

Features    : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part    : 0xc07
CPU revision    : 4

Hardware    : sun7i
Revision    : 0000
Serial      : 0000000000000000
Chipid      : 16516592-80826652-56484848-088254ea

返品

cubie@Cubian:~$ gcc -dumpmachine
arm-linux-gnueabihf

何が間違っている可能性がありますか?

ベストアンサー1

あなたの質問はここにあります:

{standard input}: Assembler messages:
{standard input}:730: Error: selected processor does not support Thumb mode `vuzp.8 d0,d1'
{standard input}:731: Error: selected processor does not support Thumb mode `vuzp.8 d2,d3'

説明する

~からiOS開発者がARMプロセッサについて知っておくべきこと:

無知

Thumb命令セットは、命令が16ビットしか占有しないように圧縮されたARM命令セットのサブセットです(すべてのARM命令のサイズは32ビットです。Thumbはまだ32ビットアーキテクチャですが、命令は少ないスペースを占めます)。これは他のアーキテクチャではありませんが、最も一般的なARM命令と機能の略称と見なす必要があります。もちろん、利点は、コードサイズを大幅に削減し、メモリ、キャッシュ、およびコード帯域幅を節約できることです。一方、これは、ハードウェアが使用されるメモリを節約することができるマイクロコントローラタイプのアプリケーションでより便利です。 iOSデバイスでの作業は便利なので、Xcode iOSプロジェクトでデフォルトで有効になっています。コードサイズを減らすことをお勧めしますが、実際には同じARM命令の1つに2つのThumb命令が必要なため、実際には50%に達しません。 ARMおよびThumb命令は自由に混在させることはできず、プロセッサはある命令から別の命令に切り替えるときにモードを切り替える必要があります。これは、関数を呼び出すか関数から返すときにのみ発生します。したがって、関数は全体としてThumbまたはARMでなければなりません。実際、コードが関数の粒度からThumbまたはARMにコンパイルされるかどうかは制御できませんが、ソースファイルの粒度では制御できます。

Debian Wikiで腕が伸びにくい

3つの双子

GCCは、GNU arm-linux-gnueabi三重項用に構築されたときに、ハード浮動小数点呼び出しとソフト浮動小数点呼び出し規則の両方をサポートします。

dpkgはトリプルを使用してポートを識別します(gcc -dumpmachine出力)。マルチアーキテクチャのような他のいくつかのプロジェクトは、すべてのDebianアーキテクチャで異なるトリプルを持つことに依存しています。

1つのオプションは、トリプルのプロバイダフィールドを使用して別のトリプルを持つことです。たとえば、トリプルはarm-hardfloat-linux-gnueabiになります。

CodeSourcery コンパイラと同様に、arm-none-linux-gnueabi はオプションですが、arm-linux-gnueabi を arm-none-linux-gnueabi に関連付けることは混乱しています。これはarm-hardfloat-gnueabiの関係がより明確になり、CodeSourceryと新しいポートを区別することもできます。

最後に、トリプルarm-linux-gnueabihfを使用することにしました。


つまり、上記のエラーメッセージは、コンパイラが次のいずれかまたはすべてをサポートしていないことを示します。親指コマンドセット。他のコンパイラが利用可能かどうかはわかりませんが、確認する必要がある2つのことがあります。

  1. コンパイラが次をサポートしていることを確認しましたか?ここにリストされているモデル
  2. 設定しましたか?Wiki?に記載されているQTAV環境

ちなみに、私のディストロホーンを宣伝するつもりはありませんが、使用について考えたことがありますか?ARMのGentoo


その他必要なもの:

CHOST="armv7a-hardfloat-linux-gnueabi" CFLAGS="-O2 -march=armv7-a -mtune=cortex-a(7 または 8) -mfpu=vfpv3-d16 -mfloat-abi=hard -pipe -fomit-フレームポインタ" CXXFLAGS="${CFLAGS}"

おすすめ記事