다음 구성을 사용하여 Android용 ffmpeg를 구성했습니다.
./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
을 실행하면 make
errno.h를 찾을 수 없는 것 같아서 다음 오류가 발생합니다.
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
내 시스템(내부 및 외부)에 errno.h가 있음에도 불구하고 /usr/include
이런 일이 발생합니다 /usr/include/asm-generic
. include 문을 로 변경했는데 libavutil/common.h
이제 #include "/usr/include/errno.h"
다른 파일을 찾을 수 없습니다 features.h
. 이러한 포함 파일을 찾는 방법을 알려주는 방법이 있습니까?
고쳐 쓰다:
원래 질문에 포함하는 것을 잊었고 구성을 실행한 후 나타나는 경고가 다음과 같은 것이 중요할 수 있습니다.
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.
해당 디렉토리에 arm-linux-androideabi-pkg-config라는 파일이 표시되지 않습니다. 하나 만들어야 하나요? 또한 다음과 같이
다른 구성 옵션도 추가했습니다 .sysinclude
--sysinclude=/Android/Sdk/ndk-bundle/sysroot/usr/include/arm-linux-androideabi
그러나 make는 여전히 errno.h를 찾을 수 없습니다.