【发布时间】:2020-11-09 10:56:15
【问题描述】:
一个多星期以来,我正在尝试按照以下说明从 Windows 10 机器构建适用于 Android 的 QtAV 1.12.0:
https://github.com/wang-bin/QtAV/wiki/Build-QtAV
我正在使用
- 来自 git 的 QtAV 1.12.0。
- Qt 5.12.4(已尝试 5.14.0,但参考 https://github.com/wang-bin/QtAV/issues/1262 存在不同/新问题)
- JDK 1.8.0
- NDK 19.2(也试过 21.1)
- Android SDK 26.1.1
- ffmpeg 依赖项:ffmpeg-3.1.4-anrdoid-armv7a-clang 从这里: https://sourceforge.net/projects/qtav/files/depends/FFmpeg/android/
- 我从该页面尝试了不同的 android ffmpeg 依赖项,都导致了相同(甚至更早)的错误。
- 将 ffmpeg 依赖项(/lib、/include、/share、...)复制到 ..\Qt\Qt5.12.4\5.12.4\android_armv7 文件夹
- 将 ffmpeg 依赖项复制到项目根目录,并将 INCLUDEPATH 和 LIBS 添加到 qtav.pro 文件(后来甚至添加到 .qmake.conf)
Android 设备设置很好,除了 OpenSSL 部分。我想这无关紧要,对吧? (无论如何,我都可以将我的应用程序部署到我的安卓手机上。)
我正在使用 Qt Creator 4.12.3 进行构建,但遇到了错误。构建过程在 108 个警告和 2 个错误时中止:
错误:找不到 -lass clang++.exe:-1: Fehler: error: linker command failed with exit code 1 (use -v to see invocation)
但在 /config.log 方式中会发生较早的错误,我认为这可能会级联到上面的结果:
> C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++ -D__ANDROID_API__=16 -target armv7-none-linux-androideabi -gcc -工具链 C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64 -fno-limit-debug-info -Wl,- -exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -Wl,--exclude-libs,libunwind.a --sysroot=C:\Users\User\AppData\Local\Android\Sdk \ndk\19.2.5345600/platforms/android-16/arch-arm/ -Wl,--enable-new-dtags -Wl,--no-undefined -Wl,-z,noexecstack -shared -Wl,-soname, libavresample.so -o libavresample.so main.obj -lavresample -LC:/Qt/Qt5.12.4/5.12.4/android_armv7/lib -LC:\Users\User\AppData\Local\Android\Sdk\ndk\19.2。 5345600/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sources/cxx-stl/llvm-libc++/libs/ armeabi-v7a/libc++.so.16 -llog -lz -lm -ldl -lc > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/lib/gcc/arm-linux-androideabi/4.9。 x/../../../../arm-linux-androideabi/bin\ld: 错误:找不到-lavresample > clang++.exe:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用) > mingw32-make: *** [Makefile:71: libavresample.so] 错误 1 测试 avresample 失败 执行配置测试avfilter + cd /d C:\build-QtAV-USERDEF_Android\config.tests\avfilter && C:\Qt\Qt5.12.4\5.12.4\android_armv7\bin\qmake.exe -spec C:/Qt/Qt5.12.4/ 5.12.4/android_armv7/mkspecs/android-clang "CONFIG -= qt debug_and_release app_bundle lib_bundle" C:/QtAV/config.tests/avfilter + cd /d C:\build-QtAV-USERDEF_Android\config.tests\avfilter && set MAKEFLAGS=& mingw32-make > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++ -c -D__ANDROID_API__=16 -target armv7-none-linux-androideabi -gcc-toolchain C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64 -fno-limit-debug-info -DANDROID_HAS_WSTRING --sysroot=C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sysroot -isystem C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sysroot /usr/include/arm-linux-androideabi -isystem C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sources/cxx-stl/llvm-libc++/include -isystem C:\Users \User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sources/android/support/include -isystem C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sources/cxx -stl/llvm-libc++abi/include -fstack-protector-strong -DANDROID -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-builtin-memmove -mthumb -Oz -std=gnu+ +11 -Wall -W -fPIC -D__STDC_CONSTANT_MACRO S -IC:\QtAV\config.tests\avfilter -I。 -IC:\Qt\Qt5.12.4\5.12.4\android_armv7\include -IC:\QtAV\contrib\dxsdk -IC:\Qt\Qt5.12.4\5.12.4\android_armv7\mkspecs\android-clang -o main .obj C:\QtAV\config.tests\avfilter\main.cpp > 删除 libavfilter.so > C:\build-QtAV-USERDEF_Android\config.tests\avfilter\libavfilter.so konnte nicht gefunden werden > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++ -D__ANDROID_API__=16 -target armv7-none-linux-androideabi -gcc -工具链 C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64 -fno-limit-debug-info -Wl,- -exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -Wl,--exclude-libs,libunwind.a --sysroot=C:\Users\User\AppData\Local\Android\Sdk \ndk\19.2.5345600/platforms/android-16/arch-arm/ -Wl,--enable-new-dtags -Wl,--no-undefined -Wl,-z,noexecstack -shared -Wl,-soname, libavfilter.so -o libavfilter.so main.obj -lavfilter -LC:/Qt/Qt5.12.4/5.12.4/android_armv7/lib -LC:\Users\User\AppData\Local\Android\Sdk\ndk\19.2。 5345600/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sources/cxx-stl/llvm-libc++/libs/ armeabi-v7a/libc++.so.16 -llog -lz -lm -ldl -lc 测试avfilter成功 执行配置测试 avdevice + cd /d C:\build-QtAV-USERDEF_Android\config.tests\avdevice && C:\Qt\Qt5.12.4\5.12.4\android_armv7\bin\qmake.exe -spec C:/Qt/Qt5.12.4/ 5.12.4/android_armv7/mkspecs/android-clang "CONFIG -= qt debug_and_release app_bundle lib_bundle" C:/QtAV/config.tests/avdevice + cd /d C:\build-QtAV-USERDEF_Android\config.tests\avdevice && 设置 MAKEFLAGS=& mingw32-make > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++ -c -D__ANDROID_API__=16 -target armv7-none-linux-androideabi -gcc-toolchain C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64 -fno-limit-debug-info -DANDROID_HAS_WSTRING --sysroot=C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sysroot -isystem C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sysroot /usr/include/arm-linux-androideabi -isystem C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sources/cxx-stl/llvm-libc++/include -isystem C:\Users \User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sources/android/support/include -isystem C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sources/cxx -stl/llvm-libc++abi/include -fstack-protector-strong -DANDROID -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-builtin-memmove -mthumb -Oz -std=gnu+ +11 -Wall -W -fPIC -D__STDC_CONSTANT_MACRO S -IC:\QtAV\config.tests\avdevice -I。 -IC:\Qt\Qt5.12.4\5.12.4\android_armv7\include -IC:\QtAV\contrib\dxsdk -IC:\Qt\Qt5.12.4\5.12.4\android_armv7\mkspecs\android-clang -o main .obj C:\QtAV\config.tests\avdevice\main.cpp > 删除 libavdevice.so > C:\build-QtAV-USERDEF_Android\config.tests\avdevice\libavdevice.so konnte nicht gefunden werden > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++ -D__ANDROID_API__=16 -target armv7-none-linux-androideabi -gcc -工具链 C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64 -fno-limit-debug-info -Wl,- -exclude-libs,libgcc.a -Wl,--exclude-libs,libatomic.a -Wl,--exclude-libs,libunwind.a --sysroot=C:\Users\User\AppData\Local\Android\Sdk \ndk\19.2.5345600/platforms/android-16/arch-arm/ -Wl,--enable-new-dtags -Wl,--no-undefined -Wl,-z,noexecstack -shared -Wl,-soname, libavdevice.so -o libavdevice.so main.obj -lavdevice -LC:/Qt/Qt5.12.4/5.12.4/android_armv7/lib -LC:\Users\User\AppData\Local\Android\Sdk\ndk\19.2。 5345600/sources/cxx-stl/llvm-libc++/libs/armeabi-v7a C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sources/cxx-stl/llvm-libc++/libs/ armeabi-v7a/libc++.so.16 -llog -lz -lm -ldl -lc > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/lib/gcc/arm-linux-androideabi/4.9。 x/../../../../arm-linux-androideabi/bin\ld: 错误:找不到-lavdevice > clang++.exe:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用) > mingw32-make: *** [Makefile:71: libavdevice.so] 错误 1 测试 avdevice 失败 执行配置测试 sse4_1 + cd /d C:\build-QtAV-USERDEF_Android\config.tests\sse4_1 && C:\Qt\Qt5.12.4\5.12.4\android_armv7\bin\qmake.exe -spec C:/Qt/Qt5.12.4/ 5.12.4/android_armv7/mkspecs/android-clang "CONFIG -= qt debug_and_release app_bundle lib_bundle" C:/QtAV/config.tests/sse4_1 + cd /d C:\build-QtAV-USERDEF_Android\config.tests\sse4_1 && 设置 MAKEFLAGS=& mingw32-make > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++ -c -D__ANDROID_API__=16 -target armv7-none-linux-androideabi -gcc-toolchain C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64 -fno-limit-debug-info -DANDROID_HAS_WSTRING --sysroot=C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sysroot -isystem C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sysroot /usr/include/arm-linux-androideabi -isystem C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sources/cxx-stl/llvm-libc++/include -isystem C:\Users \User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sources/android/support/include -isystem C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sources/cxx -stl/llvm-libc++abi/include -fstack-protector-strong -DANDROID -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-builtin-memmove -msse4.1 -g -g - marm -O0 -std=gnu++11 -Wall -W -fPIC -IC:\QtAV \config.tests\sse4_1 -I。 -IC:\Qt\Qt5.12.4\5.12.4\android_armv7\mkspecs\android-clang -o sse4_1.obj C:\QtAV\config.tests\sse4_1\sse4_1.cpp > clang++.exe:警告:编译期间未使用的参数:'-msse4.1' [-Wunused-command-line-argument] > 在 C:\QtAV\config.tests\sse4_1\sse4_1.cpp:42 包含的文件中: > 在 C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\8.0.2\include\smmintrin.h 中包含的文件中: 27: > 在 C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\8.0.2\include\tmmintrin.h 中包含的文件中: 27: > 在 C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\8.0.2\include\pmmintrin.h 中包含的文件中: 27: > 在 C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\8.0.2\include\emmintrin.h 中包含的文件中: 27: > 在 C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\8.0.2\include\xmmintrin.h 中包含的文件中: 27: > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\8.0.2\include\mmintrin.h:47:5:错误:使用未声明的标识符“__builtin_ia32_emms”;你的意思是'__builtin_isless'吗? > __builtin_ia32_emms(); > ^ > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\8.0.2\include\mmintrin.h:47:5:注意:此处声明的“__builtin_isless” > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\8.0.2\include\mmintrin.h:47:25:错误:函数调用的参数太少,预期为 2,有 0 > __builtin_ia32_emms(); > ^ > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\8.0.2\include\mmintrin.h:64:19:错误:使用未声明的标识符“__builtin_ia32_vec_init_v2si” > 返回 (__m64)__builtin_ia32_vec_init_v2si(__i, 0); > ^ > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\8.0.2\include\mmintrin.h:81:12:错误:使用未声明的标识符“__builtin_ia32_vec_ext_v2si” > 返回 __builtin_ia32_vec_ext_v2si((__v2si)__m, 0); > ^ > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\8.0.2\include\mmintrin.h:143:19:错误:使用未声明的标识符“__builtin_ia32_packsswb” > 返回 (__m64)__builtin_ia32_packsswb((__v4hi)__m1, (__v4hi)__m2); > ^ > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\8.0.2\include\mmintrin.h:173:19:错误:使用未声明的标识符“__builtin_ia32_packssdw” > 返回 (__m64)__builtin_ia32_packssdw((__v2si)__m1, (__v2si)__m2); > ^ > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\8.0.2\include\mmintrin.h:203:19:错误:使用未声明的标识符“__builtin_ia32_packuswb” > 返回 (__m64)__builtin_ia32_packuswb((__v4hi)__m1, (__v4hi)__m2); > ^ > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\8.0.2\include\mmintrin.h:230:19:错误:使用未声明的标识符“__builtin_ia32_punpckhbw” > 返回 (__m64)__builtin_ia32_punpckhbw((__v8qi)__m1, (__v8qi)__m2); > ^ > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\8.0.2\include\mmintrin.h:253:19:错误:使用未声明的标识符“__builtin_ia32_punpckhwd” > 返回 (__m64)__builtin_ia32_punpckhwd((__v4hi)__m1, (__v4hi)__m2); > ^ > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\8.0.2\include\mmintrin.h:274:19:错误:使用未声明的标识符“__builtin_ia32_punpckhdq” > 返回 (__m64)__builtin_ia32_punpckhdq((__v2si)__m1, (__v2si)__m2); > ^ > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\8.0.2\include\mmintrin.h:301:19:错误:使用未声明的标识符“__builtin_ia32_punpcklbw” > 返回 (__m64)__builtin_ia32_punpcklbw((__v8qi)__m1, (__v8qi)__m2); > ^ > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\8.0.2\include\mmintrin.h:324:19:错误:使用未声明的标识符“__builtin_ia32_punpcklwd” > 返回 (__m64)__builtin_ia32_punpcklwd((__v4hi)__m1, (__v4hi)__m2); > ^ > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\8.0.2\include\mmintrin.h:345:19:错误:使用未声明的标识符“__builtin_ia32_punpckldq” > 返回 (__m64)__builtin_ia32_punpckldq((__v2si)__m1, (__v2si)__m2); > ^ > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\8.0.2\include\mmintrin.h:366:19:错误:使用未声明的标识符“__builtin_ia32_paddb” > 返回 (__m64)__builtin_ia32_paddb((__v8qi)__m1, (__v8qi)__m2); > ^ > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\8.0.2\include\mmintrin.h:387:19:错误:使用未声明的标识符“__builtin_ia32_paddw” > 返回 (__m64)__builtin_ia32_paddw((__v4hi)__m1, (__v4hi)__m2); > ^ > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\8.0.2\include\mmintrin.h:408:19:错误:使用未声明的标识符“__builtin_ia32_paddd” > 返回 (__m64)__builtin_ia32_paddd((__v2si)__m1, (__v2si)__m2); > ^ > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\8.0.2\include\mmintrin.h:430:19:错误:使用未声明的标识符“__builtin_ia32_paddsb” > 返回 (__m64)__builtin_ia32_paddsb((__v8qi)__m1, (__v8qi)__m2); > ^ > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\8.0.2\include\mmintrin.h:453:19:错误:使用未声明的标识符“__builtin_ia32_paddsw” > 返回 (__m64)__builtin_ia32_paddsw((__v4hi)__m1, (__v4hi)__m2); > ^ > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600\toolchains\llvm\prebuilt\windows-x86_64\lib64\clang\8.0.2\include\mmintrin.h:475:19:错误:使用未声明的标识符“__builtin_ia32_paddusb” > 返回 (__m64)__builtin_ia32_paddusb((__v8qi)__m1, (__v8qi)__m2); > ^ > 致命错误:发出的错误太多,现在停止 [-ferror-limit=] > 生成 20 个错误。 > mingw32-make: *** [Makefile:438: sse4_1.obj] 错误 1 测试 sse4_1 失败 执行配置测试开放 + cd /d C:\build-QtAV-USERDEF_Android\config.tests\openal && C:\Qt\Qt5.12.4\5.12.4\android_armv7\bin\qmake.exe -spec C:/Qt/Qt5.12.4/ 5.12.4/android_armv7/mkspecs/android-clang "CONFIG -= qt debug_and_release app_bundle lib_bundle" C:/QtAV/config.tests/openal + cd /d C:\build-QtAV-USERDEF_Android\config.tests\openal && 设置 MAKEFLAGS=& mingw32-make > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++ -c -D__ANDROID_API__=16 -target armv7-none-linux-androideabi -gcc-toolchain C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64 -fno-limit-debug-info -DANDROID_HAS_WSTRING --sysroot=C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sysroot -isystem C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sysroot /usr/include/arm-linux-androideabi -isystem C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sources/cxx-stl/llvm-libc++/include -isystem C:\Users \User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sources/android/support/include -isystem C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sources/cxx -stl/llvm-libc++abi/include -fstack-protector-strong -DANDROID -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-builtin-memmove -O2 -O2 -mthumb -IC: \QtAV\config.tests\openal -I。 -IC:\Qt\Qt5.12.4\5.12.4\android_armv7\include -IC:\QtAV\contrib\dxsdk -IC:\Qt\Qt5.12.4\5.12.4\android_armv7\mkspecs\android-clang -o main .obj C:\QtAV\config.tests\openal\main.cpp > 删除 libopenal.a > C:\build-QtAV-USERDEF_Android\config.tests\openal\libopenal.a konnte nicht gefunden werden > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-ar cqs libopenal。一个 main.obj > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-ranlib libopenal.a 测试公开成功 执行配置测试 libass + cd /d C:\build-QtAV-USERDEF_Android\config.tests\libass && C:\Qt\Qt5.12.4\5.12.4\android_armv7\bin\qmake.exe -spec C:/Qt/Qt5.12.4/ 5.12.4/android_armv7/mkspecs/android-clang "CONFIG -= qt debug_and_release app_bundle lib_bundle" C:/QtAV/config.tests/libass + cd /d C:\build-QtAV-USERDEF_Android\config.tests\libass && 设置 MAKEFLAGS=& mingw32-make > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++ -c -D__ANDROID_API__=16 -target armv7-none-linux-androideabi -gcc-toolchain C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64 -fno-limit-debug-info -DANDROID_HAS_WSTRING --sysroot=C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sysroot -isystem C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sysroot /usr/include/arm-linux-androideabi -isystem C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sources/cxx-stl/llvm-libc++/include -isystem C:\Users \User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sources/android/support/include -isystem C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sources/cxx -stl/llvm-libc++abi/include -fstack-protector-strong -DANDROID -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-builtin-memmove -O2 -O2 -mthumb -IC: \QtAV\config.tests\libass -I。 -IC:\Qt\Qt5.12.4\5.12.4\android_armv7\include -IC:\QtAV\contrib\dxsdk -IC:\Qt\Qt5.12.4\5.12.4\android_armv7\mkspecs\android-clang -o main .obj C:\QtAV\config.tests\libass\main.cpp > 删除 liblibass.a > C:\build-QtAV-USERDEF_Android\config.tests\libass\liblibass.a konnte nicht gefunden werden > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-ar cqs liblibass.一个 main.obj > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-ranlib liblibass.a 测试 libass 成功 执行配置测试 uchardet + cd /d C:\build-QtAV-USERDEF_Android\config.tests\uchardet && C:\Qt\Qt5.12.4\5.12.4\android_armv7\bin\qmake.exe -spec C:/Qt/Qt5.12.4/ 5.12.4/android_armv7/mkspecs/android-clang "CONFIG -= qt debug_and_release app_bundle lib_bundle" C:/QtAV/config.tests/uchardet + cd /d C:\build-QtAV-USERDEF_Android\config.tests\uchardet && 设置 MAKEFLAGS=& mingw32-make > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++ -c -D__ANDROID_API__=16 -target armv7-none-linux-androideabi -gcc-toolchain C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64 -fno-limit-debug-info -DANDROID_HAS_WSTRING --sysroot=C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sysroot -isystem C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sysroot /usr/include/arm-linux-androideabi -isystem C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sources/cxx-stl/llvm-libc++/include -isystem C:\Users \User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sources/android/support/include -isystem C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sources/cxx -stl/llvm-libc++abi/include -fstack-protector-strong -DANDROID -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-builtin-memmove -mthumb -Oz -std=gnu+ +11 -Wall -W -fPIC -IC:\QtAV\config.tests \uchardet-我。 -IC:\Qt\Qt5.12.4\5.12.4\android_armv7\include -IC:\QtAV\contrib\dxsdk -IC:\Qt\Qt5.12.4\5.12.4\android_armv7\mkspecs\android-clang -o main .obj C:\QtAV\config.tests\uchardet\main.cpp > C:\QtAV\config.tests\uchardet\main.cpp:21:10: 致命错误: 'ucharet/uchardet.h' 文件未找到 > #包括 > ^~~~~~~~~~~~~~~~~~~~~~~~ > 1 个错误生成。 > mingw32-make: *** [Makefile:451: main.obj] 错误 1 测试 uchardet 失败 执行配置测试 libcedarv + cd /d C:\build-QtAV-USERDEF_Android\config.tests\libcedarv && C:\Qt\Qt5.12.4\5.12.4\android_armv7\bin\qmake.exe -spec C:/Qt/Qt5.12.4/ 5.12.4/android_armv7/mkspecs/android-clang "CONFIG -= qt debug_and_release app_bundle lib_bundle" C:/QtAV/config.tests/libcedarv + cd /d C:\build-QtAV-USERDEF_Android\config.tests\libcedarv && 设置 MAKEFLAGS=& mingw32-make > C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++ -c -D__ANDROID_API__=16 -target armv7-none-linux-androideabi -gcc-toolchain C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64 -fno-limit-debug-info -DANDROID_HAS_WSTRING --sysroot=C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sysroot -isystem C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sysroot /usr/include/arm-linux-androideabi -isystem C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sources/cxx-stl/llvm-libc++/include -isystem C:\Users \User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sources/android/support/include -isystem C:\Users\User\AppData\Local\Android\Sdk\ndk\19.2.5345600/sources/cxx -stl/llvm-libc++abi/include -fstack-protector-strong -DANDROID -march=armv7-a -mfloat-abi=softfp -mfpu=vfp -fno-builtin-memmove -mthumb -Oz -std=gnu+ +11 -Wall -W -fPIC -IC:\QtAV\config.tests \libcedarv -I。 -IC:\Qt\Qt5.12.4\5.12.4\android_armv7\include -IC:\QtAV\contrib\dxsdk -IC:\Qt\Qt5.12.4\5.12.4\android_armv7\mkspecs\android-clang -o main .obj C:\QtAV\config.tests\libcedarv\main.cpp > C:\QtAV\config.tests\libcedarv\main.cpp:21:10:致命错误:找不到“libcedarv/libcedarv.h”文件 > #包括 > ^~~~~~~~~~~~~~~~~~~~~~~~~~ > 1 个错误生成。 > mingw32-make: *** [Makefile:451: main.obj] 错误 1 测试 libcedarv 失败我没有绑定到特定的 SDK / NDK / Qt / QtAV 版本。
我成功地为 MSVC2017 x32 和 x64 构建了 QtAV,所以我认为它一定与 ffmpeg 依赖项或整个 JDK/SDK/NDK 设置有关。有人知道我在哪里出错了吗?
由于构建开始并运行了一段时间,我认为编译器/链接器可以找到提供的依赖项,但可能不完整?
请注意:AFAIK 需要 libass 内容才能在视频中显示字幕。我不需要该功能(我想从摄像机流式传输 rstp 实时流)。禁用模块作为解决方法,例如带有 CONFIG -= 开关,也是一个受欢迎的解决方案,值得一试。
我不确定的是 Kit/sysroot 行。这里有什么要求吗?默认为空。
【问题讨论】: