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'

나는 그것을 사용하고 있다쿠바 사람(큐비보드의 데비안 클론):

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 명령어 하나에 두 개의 Thumb 명령어가 필요하기 때문에 실제로는 50%에 도달하지 않습니다. ARM 및 Thumb 명령어는 자유롭게 혼합할 수 없으며 프로세서는 한 명령어에서 다른 명령어로 전환할 때 모드를 전환해야 합니다. 이는 함수를 호출하거나 함수에서 반환할 때만 발생합니다. 따라서 함수는 전체적으로 Thumb 또는 ARM이어야 합니다. 실제로 코드가 함수 세분성에서 Thumb 또는 ARM으로 컴파일되는지 여부는 제어할 수 없지만 소스 파일 세분성에서는 제어할 수 있습니다.

데비안 위키에서팔이 뜨기 힘들다

세 쌍둥이

GCC는 GNU arm-linux-gnueabi 삼중항에 대해 구축될 때 하드 및 소프트 부동 소수점 호출 규칙을 모두 지원합니다.

dpkg는 트리플을 사용하여 포트를 식별합니다(gcc -dumpmachine 출력). 다중 아키텍처와 같은 일부 다른 프로젝트는 모든 데비안 아키텍처에서 서로 다른 트리플을 갖는 데 의존합니다.

한 가지 옵션은 트리플의 공급자 필드를 사용하여 다른 트리플을 갖는 것입니다. 예를 들어, 트리플은 arm-hardfloat-linux-gnueabi가 될 수 있습니다.

CodeSourcery 컴파일러에서와 같이 arm-none-linux-gnueabi는 옵션이지만 arm-linux-gnueabi를 arm-none-linux-gnueabi와 연관시키는 것은 혼란스럽습니다. 이는 arm-hardfloat- gnueabi 관계가 더욱 명확해졌으며 CodeSourcery와 새 포트를 구별할 수도 있습니다.

마침내 트리플 arm-linux-gnueabihf를 사용하기로 결정했습니다.


즉, 위에 게시된 오류 메시지는 컴파일러가 다음 중 일부 또는 전부를 지원하지 않음을 나타냅니다.엄지 명령 세트. 다른 컴파일러를 사용할 수 있는지는 말씀드릴 수 없지만 확인해야 할 두 가지 사항은 있습니다.

  1. 컴파일러가 다음을 지원하는지 확인했습니까?여기에 나열된 모델?
  2. 설정했어?Wiki?에 설명된 QTAV 환경

참고로, 내 distro 경적을 홍보하려는 것은 아니지만 사용에 대해 생각해 본 적이 있습니까?ARM의 젠투


기타 필요할 수 있는 사항:

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}"

관련 정보