Попытка скомпилировать последний FFmpeg iPhone: ошибка: недопустимый операнд во встроенном asm

#iphone #compilation #ffmpeg

#iPhone #Сборник #ffmpeg

Вопрос:

Я пытаюсь скомпилировать последний FFmpeg для iPhone, но получаю сообщение об ошибке:

     CC  libavformat/asfcrypt.o
error: invalid operand in inline asm: 'ldr   ${0:Q}, $1  
    ldr   ${0:R}, $2  
    '
make: *** [libavformat/asfcrypt.o] Error 1
 

Спасибо

Ответ №1:

У меня такая же проблема. Я нашел способ обойти это, отключив встроенный язык ассемблера:

 ./configure --disable-asm ...
 

Я не уверен, какое влияние это окажет на производительность, но, по крайней мере, пока это работает.

Ответ №2:

Я попробовал —disable-asm configuration . Это работает, но производительность декодера низкая.

Я попытался отредактировать config.h:

#define HAVE_INLINE_ASM 0

это отключает только встроенную сборку

или, если у вас есть только какой-то декодер в ffmpeg, просто отключите все остальные неиспользуемые кодеки и отредактируйте libavutil / arm / intmath.h, закомментируйте это определение:

 #define av_clipl_int32 av_clipl_int32_arm
 

это отключает только одну встроенную функцию сборки, и она работает для меня.

Комментарии:

1. К сожалению, это не сработало для меня в ffmpeg 0.10, OS X Lion и Xcode 4.2. Это просто создало другие ошибки ASM. —disable-asm — единственное, что сработало.

Ответ №3:

вы можете использовать —disable-armv5te —disable-armv6 —disable-armv6t2, это сработает для вас. этот процессор очень старый, мы можем его отключить.

Комментарии:

1. при использовании этих —disable-armv5te —disable-armv6 —disable-armv6t2 декодер также обладает высокой производительностью.