Eu configurei o ffmpeg para Android usando a seguinte configuração:
./configure --arch=arm --target-os=android --enable-cross-compile --cross-prefix=/Android/Sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi- --sysroot=/Android/Sdk/ndk-bundle/platforms/android-27/arch-arm --enable-gpl --cpu=cortex-a8
Quando executo make
, parece não conseguir encontrar o errno.h, então recebo o seguinte erro:
CC libavdevice/alldevices.o
In file included from ./libavutil/avutil.h:296:0,
from ./libavutil/log.h:25,
from libavdevice/avdevice.h:48,
from libavdevice/alldevices.c:23:
./libavutil/common.h:33:19: fatal error: errno.h: No such file or directory
#include <errno.h>
^
compilation terminated.
make: *** [ffbuild/common.mak:60: libavdevice/alldevices.o] Error 1
Isso acontece apesar do fato de que errno.h está presente no meu sistema, ambos em /usr/include
e /usr/include/asm-generic
. Alterei a instrução de inclusão em libavutil/common.h
para #include "/usr/include/errno.h"
e agora não é possível encontrar outro arquivo features.h
. Existe uma maneira que eu possa dizer como encontrar esses arquivos de inclusão?
Atualizar :
Algo que esqueci de incluir na pergunta original e que pode ter sido importante é que o aviso que recebi depois de executar o configure é:
WARNING: /Android/Sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-pkg-config not found, library detection may fail.
Eu não vejo nenhum arquivo chamado arm-linux-androideabi-pkg-config no diretório mencionado. Devo criar um?
Eu também adicionei outra opção de configuração sysinclude
da seguinte forma:
--sysinclude=/Android/Sdk/ndk-bundle/sysroot/usr/include/arm-linux-androideabi
Mas, ainda não consegue encontrar errno.h