마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

FFmpeg 빌드중 질문입니다.

0 추천
windows7 에서 cygwin 에서 빌드하는데 오류가 나서 진행이 안됩니다....

뭐가 문제인지 모르겠네요,

 

D:/ndk/android-ndk-r11c/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-gcc is unable to create an executable file.
C compiler test failed.

If you think configure made a mistake, make sure you are using the latest
version from Git.  If the latest version fails, report the problem to the
ffmpeg-user@ffmpeg.org mailing list or IRC #ffmpeg on irc.freenode.net.
Include the log file "config.log" produced by configure as this will help
solve the problem.
Makefile:2: config.mak: No such file or directory
Makefile:64: /common.mak: No such file or directory
Makefile:106: /libavutil/Makefile: No such file or directory
Makefile:106: /library.mak: No such file or directory
Makefile:108: /doc/Makefile: No such file or directory
Makefile:195: /tests/Makefile: No such file or directory
make: *** 타겟 '/tests/Makefile'을(를) 만들 규칙이 없습니다.  멈춤.
Makefile:2: config.mak: No such file or directory
Makefile:64: /common.mak: No such file or directory
Makefile:106: /libavutil/Makefile: No such file or directory
Makefile:106: /library.mak: No such file or directory
Makefile:108: /doc/Makefile: No such file or directory
Makefile:195: /tests/Makefile: No such file or directory
make: *** 타겟 '/tests/Makefile'을(를) 만들 규칙이 없습니다.  멈춤.
Makefile:2: config.mak: No such file or directory
Makefile:64: /common.mak: No such file or directory
Makefile:106: /libavutil/Makefile: No such file or directory
Makefile:106: /library.mak: No such file or directory
Makefile:108: /doc/Makefile: No such file or directory
Makefile:195: /tests/Makefile: No such file or directory
make: *** 타겟 '/tests/Makefile'을(를) 만들 규칙이 없습니다.  멈춤.

 

아래 sh 파일입니다.

#!/bin/bash

NDK=D:/ndk/android-ndk-r11c
SYSROOT=$NDK/platforms/android-9/arch-arm/
TOOLCHAIN=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64
function build_one
{
./configure \
    --prefix=$PREFIX \
    --enable-shared \
    --disable-static \
    --disable-doc \
    --disable-ffmpeg \
    --disable-ffplay \
    --disable-ffprobe \
    --disable-ffserver \
    --disable-avdevice \
    --disable-doc \
    --disable-symver \
    --cross-prefix=$TOOLCHAIN/bin/arm-linux-androideabi- \
    --target-os=linux \
    --arch=arm \
    --enable-cross-compile \
    --sysroot=$SYSROOT \
    --extra-cflags="-Os -fpic $ADDI_CFLAGS" \
    --extra-ldflags="$ADDI_LDFLAGS" \
    $ADDITIONAL_CONFIGURE_FLAG
# make clean
# make -j4
# make install
}
CPU=arm
PREFIX=$(pwd)/android/$CPU
ADDI_CFLAGS="-marm"
build_one
캐드카 (970 포인트) 님이 2016년 4월 14일 질문

3개의 답변

0 추천
 
채택된 답변
config.log의 마지막을 보면 에러메시지를 확인할 수 있습니다.
익명사용자 님이 2016년 4월 14일 답변
캐드카님이 2016년 4월 14일 채택됨
D:/ndk/android-ndk-r11c/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-gcc --sysroot=D:/ndk/android-ndk-r11c/platforms/android-14/arch-arm/ -isysroot D:/ndk/android-ndk-r11c/platforms/android-14/arch-arm/ -Os -fpic -marm -mcpu= -c -o /tmp/ffconf.lPplF7E4.o /tmp/ffconf.gS0KLgsN.c
arm-linux-androideabi-gcc.exe: error: missing argument to '-mcpu='
arm-linux-androideabi-gcc.exe: error: /tmp/ffconf.gS0KLgsN.c: No such file or directory
arm-linux-androideabi-gcc.exe: fatal error: no input files
compilation terminated.
C compiler test failed.

tmp폴더를 찾지 못하는듯 싶네요
tmp 폴더 경로의 경우
export TMPDIR=/cygdrive/d/tmp 같은 것을 선언해서 경로를 강제로 지정하고 빌드 해 보세요..
tmp 변경해서 한참 진행은 됐는데  so파일이 생성이 안되네요....


d:/ndk/android-ndk-r11c/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9/../../../../arm-linux-androideabi/bin/ld.exe: error: libavutil/libavutil.so:1:1: syntax error, unexpected '!', expecting $end
d:/ndk/android-ndk-r11c/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9/../../../../arm-linux-androideabi/bin/ld.exe: error: libavutil/libavutil.so: not an object or archive
d:/ndk/android-ndk-r11c/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9/../../../../arm-linux-androideabi/bin/ld.exe: error: libavutil/libavutil.so:1:1: syntax error, unexpected '!', expecting $end
d:/ndk/android-ndk-r11c/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9/../../../../arm-linux-androideabi/bin/ld.exe: error: libavutil/libavutil.so: not an object or archive
collect2.exe: error: ld returned 1 exit status
library.mak:111: 'libswresample/libswresample-2.so' 타겟에 대한 명령이 실패했습니다
make: *** [libswresample/libswresample-2.so] 오류 1
make: *** 끝나지 않은 작업을 기다리고 있습니다....
d:/ndk/android-ndk-r11c/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9/../../../../arm-linux-androideabi/bin/ld.exe: error: libavutil/libavutil.so:1:1: syntax error, unexpected '!', expecting $end
d:/ndk/android-ndk-r11c/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9/../../../../arm-linux-androideabi/bin/ld.exe: error: libavutil/libavutil.so: not an object or archive
collect2.exe: error: ld returned 1 exit status
library.mak:111: 'libswscale/libswscale-4.so' 타겟에 대한 명령이 실패했습니다
make: *** [libswscale/libswscale-4.so] 오류 1
LD      libswscale/libswscale-4.so
d:/ndk/android-ndk-r11c/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9/../../../../arm-linux-androideabi/bin/ld.exe: error: libavutil/libavutil.so:1:1: syntax error, unexpected '!', expecting $end
d:/ndk/android-ndk-r11c/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9/../../../../arm-linux-androideabi/bin/ld.exe: error: libavutil/libavutil.so: not an object or archive
collect2.exe: error: ld returned 1 exit status
library.mak:111: 'libswscale/libswscale-4.so' 타겟에 대한 명령이 실패했습니다
make: *** [libswscale/libswscale-4.so] 오류 1
아래 URL을 참조해 보세요
http://m.blog.naver.com/just4u78/220628698165
저도 똑같은 에러에서 막혔네요.
해결하셨다면 공유 및 조언 좀 부탁해도 될까요?

혹시,,, 리눅스에서 빌드해서 나온 결과를 복사해서 윈도우상에서 안드로이드 스튜디오로 포팅이 되는지 아시나요?

왠만하면 Cygwin 에서 해결하고 싶네요..오기가 생겨서 -ㅜ-
0 추천

제 생각엔 우분투로 빌드를 하는게 좋을 것 같네요. cygwin으로 할 때는 문제가 많았는데, 우분투로 하니까 훨 낫더라구요.

dingpong (5,180 포인트) 님이 2016년 4월 14일 답변
우분투로 빌드하던 윈도우 Cygwin으로 빌드하던 어차피 결과적으로 나오는 android 폴더 안에 있는 so 파일과 헤더파일은 같나요?
 
즉, 우분투에서 빌드해서 나온 결과를 복사해서 윈도우상에서 안드로이드 스튜디오로 포팅이 가능한건가요?
0 추천

경로 이슈로 보입니다.  cygwin에서 D:/ndk/android-ndk-r11c/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-gcc 로 실행시 gcc가 실행되는지 확인 해 보세요..

별도 경로 설정을 하지 않으셨고,  d가 마운팅 되어 있다면,  cygwin에서 경로는 D: 같은게 아니라 /cygdrive/d   같은형식이 되어야 할겁니다.

그리고 configure 시에도   ffmpeg 소스를 못 찾는듯 한데,  경로가 맞는지 확인 해 보세요. 

익명사용자 님이 2016년 4월 14일 답변
2016년 4월 14일 reshown
$ D:/ndk/android-ndk-r11c/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin/arm-linux-androideabi-gcc
arm-linux-androideabi-gcc.exe: fatal error: no input files
compilation terminated.

cygwin에서 실행해보니간 경로는 맞는거 같습니다.
...