Как я могу получить библиотеку webRTC, которая будет поддерживать как armv7 & arm64 в iOS?iOS webRTC библиотека, поддерживающая как armv7, так и arm64
ответ
Вам повезло. Я только что закончил интегрировать webrtc в свой проект на пару дней. Мое решение, как показано ниже:
Объединить все * .а вы построили для ARMv7 на libWebRTC-armv7.a: Использование командной строки, как показано ниже
Libtool -static -o SRC/out_ios_armv7/Release-iphoneos/libWebRTC-temp.a SRC/out_ios_armv7/Release-iphoneos/*.
полосы -S -x -o SRC/out_ios_armv7/Выпуск-iphoneos/libWebRTC-armv7.a -r SRC/out_ios_armv7/Release-iphoneos/libWebRTC-temp.a
Объединить все * .a вы построили для arm64 в libWebRTC-arm64.a:
Libtool -static -o SRC/out_ios/Выпуск-iphoneos/libWebRTC-temp.a SRC/out_ios/Release-iphoneos/*.
полосы -S -x -o SRC/out_ios/Release- iphoneos/libWebRTC-arm64.a -r SRC/out_ios/Release-iphoneos/libWebRTC-temp.a
Создать ваш libWebRTC поддерживаются оба ARMv7 и arm64:
липо -create SRC/out_ios_armv7/Релизы-iphoneos /libWebRTC-armv7.a src/out_ios/Release-iphoneos/libWebRTC-arm64.a -output libWebRTC.a
Ps: Просто построить свою ARMv7 библиотеку отделенной папку с arm64:
export GYP_GENERATORS="ninja"
export GYP_DEFINES="build_with_libjingle=1 build_with_chromium=0 libjingle_objc=1 OS=ios target_arch=armv7"
export GYP_GENERATOR_FLAGS="$GYP_GENERATOR_FLAGS output_dir=out_ios_armv7"
export GYP_CROSSCOMPILE=1
pushd src
gclient runhooks
ninja -C out_ios_armv7/Release-iphoneos AppRTCDemo
popd
Вы можете найти на нашем блоге:
Я написал скрипт для создания источников WebRTC к инфраструктуре (исключая библиотеку сигнализации apprtc) для использования iOS.
Если вы не можете читать по-китайски, вы просто прочитали этот сценарий, встроенный в этот блог, этого достаточно! Ага.
./build_webrtc.sh build_all
Может быть ошибка в устройстве armv7. эта ошибка была вызвана проблемой стека над потоком в декодировании VP8 в функции armv7 neon.
Вы можете подтвердить этот патч фиксирует аварии для него:
diff --git a/source/libvpx/vp8/common/arm/neon/vp8_subpixelvariance_neon.c b/source/libvpx/vp8/common/arm/neon/vp8_subpixelvariance_neon.c
index 8308d55..a66b6f5 100644
--- a/source/libvpx/vp8/common/arm/neon/vp8_subpixelvariance_neon.c
+++ b/source/libvpx/vp8/common/arm/neon/vp8_subpixelvariance_neon.c
@@ -1003,7 +1003,7 @@ unsigned int vp8_sub_pixel_variance8x8_neon(
const unsigned char *dst,
int dst_stride,
unsigned int *sse) {
- DECLARE_ALIGNED_ARRAY(kAlign16, uint8_t, temp2, kHeight8 * kWidth8);
+ DECLARE_ALIGNED_ARRAY(kAlign16, uint8_t, temp2, kHeight8PlusOne * kWidth8);
DECLARE_ALIGNED_ARRAY(kAlign16, uint8_t, fdata3, kHeight8PlusOne * kWidth8);
if (xoffset == 0) {
var_filter_block2d_bil_w8(src, temp2, src_stride, kWidth8, kHeight8,
Желание это может помочь вам!
Студенты diveinedu.com только что преодолели и исправили эту ошибку.
Я следил за вашим учебным пособием, но когда скрипт работает над объединением библиотек armv7 и arm64, возникает ошибка, и обе библиотеки не могут иметь одинаковую структуру. Также я попытался запустить arm64 на iPhone 6 и iPad 3, ошибка, которую я получаю, имеет недопустимую архитектуру. –
благодаря phuongle, это действительно работает ...
... но с изюминкой ...
...как заметил Омер Вакас Хан, может быть случай, когда можно встретить сообщение об ошибке (в то время как липо-ин): обе библиотеки не могут иметь одинаковую структуру.
Конечно, я пошел WTF ... липо, что случилось с вами ... они имеют разные структуры ... Я построил их этак ...
Но потом я решил проверить дважды это:
- я пошел в папку, где у меня была arm64_merged LIB и ...
lipo -info lib's_name.a
она доложила бытия как ARMv7 и arm64 типа. Озадаченный, я тогда ...
lipo -info *.a
... все библиотеки (72 из них) сообщили, что типа arm64 за исключением 2 ...
libisac_fix.a
libisac_neon.a
По какой причине они были ARMv7. Раньше в тот же день я использовал клон из «webrtc thingy» «несколько дней». Тогда я помню, что всегда получал только 70 библиотек. Но тогда, по другим причинам, я решил
gclient sync
После этого я закончил с 72 ... Таким образом, я просто удалил libisac нонсенс. Теперь 2 fat_libs были разных типов, и я мог успешно липо.
Спасибо phuongle .. он работает! – Dev