Компилятор ошибки C не работает при запуске build_android.sh

Я следую https://github.com/appunite/AndroidFFmpeg, чтобы собрать ffmpeg для Android, но когда запустить ./build_android.sh будет ошибка

checking for style of include used by make... GNU
checking for arm-linux-gcc... /home/toai/Downloads/android-ndk-r9/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=/home/toai/Downloads/android-ndk-r9/platforms/android-5/arch-arm/
checking whether the C compiler works... no
configure: error: in `/home/toai/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc':
configure: error: C compiler cannot create executables
See `config.log' for more details

пожалуйста, помогите мне в этом шаге. Я использую 64-битную ОС Ubuntu 13.04.

This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

It was created by vo-amrwbenc configure 0.1.2, which was
generated by GNU Autoconf 2.69.  Invocation command line was

  $ ./configure --prefix=/home/toai/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc/../ffmpeg-build/armeabi --host=arm-linux --disable-dependency-tracking --disable-shared --enable-static --with-pic

## --------- ##
## Platform. ##
## --------- ##

hostname = ubuntu
uname -m = x86_64
uname -r = 3.8.0-19-generic
uname -s = Linux
uname -v = #29-Ubuntu SMP Wed Apr 17 18:16:28 UTC 2013

/usr/bin/uname -p = unknown
/bin/uname -X     = unknown

/bin/arch              = unknown
/usr/bin/arch -k       = unknown
/usr/convex/getsysinfo = unknown
/usr/bin/hostinfo      = unknown
/bin/machine           = unknown
/usr/bin/oslevel       = unknown
/bin/universe          = unknown

PATH: /usr/lib/lightdm/lightdm
PATH: /usr/local/sbin
PATH: /usr/local/bin
PATH: /usr/sbin
PATH: /usr/bin
PATH: /sbin
PATH: /bin
PATH: /usr/games
PATH: /usr/local/games
PATH: /home/toai/Downloads/adt-bundle-linux-x86_64-20131030/sdk/platform-tools
PATH: /home/toai/Downloads/android-ndk-r9/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/


## ----------- ##
## Core tests. ##
## ----------- ##

configure:2186: checking for a BSD-compatible install
configure:2254: result: /usr/bin/install -c
configure:2265: checking whether build environment is sane
configure:2315: result: yes
configure:2364: checking for arm-linux-strip
configure:2391: result: /home/toai/Downloads/android-ndk-r9/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-strip
configure:2456: checking for a thread-safe mkdir -p
configure:2495: result: /bin/mkdir -p
configure:2508: checking for gawk
configure:2538: result: no
configure:2508: checking for mawk
configure:2524: found /usr/bin/mawk
configure:2535: result: mawk
configure:2546: checking whether make sets $(MAKE)
configure:2568: result: yes
configure:2643: checking how to create a ustar tar archive
configure:2656: tar --version
tar (GNU tar) 1.26
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Written by John Gilmore and Jay Fenlason.
configure:2659: $? = 0
configure:2699: tardir=conftest.dir && eval tar --format=ustar -chf - "$tardir" >conftest.tar
configure:2702: $? = 0
configure:2706: tar -xf - <conftest.tar
configure:2709: $? = 0
configure:2722: result: gnutar
configure:2740: checking whether make supports nested variables
configure:2757: result: yes
configure:2771: checking whether to enable maintainer-specific portions of Makefiles
configure:2780: result: no
configure:2799: checking build system type
configure:2813: result: x86_64-unknown-linux-gnu
configure:2833: checking host system type
configure:2846: result: arm-unknown-linux-gnu
configure:2929: checking for style of include used by make
configure:2957: result: GNU
configure:2988: checking for arm-linux-gcc
configure:3015: result: /home/toai/Downloads/android-ndk-r9/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=/home/toai/Downloads/android-ndk-r9/platforms/android-5/arch-arm/
configure:3284: checking for C compiler version
configure:3293: /home/toai/Downloads/android-ndk-r9/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=/home/toai/Downloads/android-ndk-r9/platforms/android-5/arch-arm/ --version >&5
./configure: line 3295: /home/toai/Downloads/android-ndk-r9/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: No such file or directory
configure:3304: $? = 127
configure:3293: /home/toai/Downloads/android-ndk-r9/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=/home/toai/Downloads/android-ndk-r9/platforms/android-5/arch-arm/ -v >&5
./configure: line 3295: /home/toai/Downloads/android-ndk-r9/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: No such file or directory
configure:3304: $? = 127
configure:3293: /home/toai/Downloads/android-ndk-r9/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=/home/toai/Downloads/android-ndk-r9/platforms/android-5/arch-arm/ -V >&5
./configure: line 3295: /home/toai/Downloads/android-ndk-r9/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: No such file or directory
configure:3304: $? = 127
configure:3293: /home/toai/Downloads/android-ndk-r9/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=/home/toai/Downloads/android-ndk-r9/platforms/android-5/arch-arm/ -qversion >&5
./configure: line 3295: /home/toai/Downloads/android-ndk-r9/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: No such file or directory
configure:3304: $? = 127
configure:3324: checking whether the C compiler works
configure:3346: /home/toai/Downloads/android-ndk-r9/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=/home/toai/Downloads/android-ndk-r9/platforms/android-5/arch-arm/ -marm -march=armv5 -marm -march=armv5 -Wl,-rpath-link=/home/toai/Downloads/android-ndk-r9/platforms/android-5/arch-arm//usr/lib -L/home/toai/Downloads/android-ndk-r9/platforms/android-5/arch-arm//usr/lib -nostdlib -lc -lm -ldl -llog conftest.c  >&5
./configure: line 3348: /home/toai/Downloads/android-ndk-r9/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: No such file or directory
configure:3350: $? = 127
configure:3388: result: no
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "vo-amrwbenc"
| #define PACKAGE_TARNAME "vo-amrwbenc"
| #define PACKAGE_VERSION "0.1.2"
| #define PACKAGE_STRING "vo-amrwbenc 0.1.2"
| #define PACKAGE_BUGREPORT "http://sourceforge.net/projects/opencore-amr/"
| #define PACKAGE_URL ""
| #define PACKAGE "vo-amrwbenc"
| #define VERSION "0.1.2"
| /* end confdefs.h.  */
| 
| int
| main ()
| {
| 
|   ;
|   return 0;
| }
configure:3393: error: in `/home/toai/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc':
configure:3395: error: C compiler cannot create executables
See `config.log' for more details

## ---------------- ##
## Cache variables. ##
## ---------------- ##

ac_cv_build=x86_64-unknown-linux-gnu
ac_cv_env_CCASFLAGS_set=
ac_cv_env_CCASFLAGS_value=
ac_cv_env_CCAS_set=
ac_cv_env_CCAS_value=
ac_cv_env_CC_set=set
ac_cv_env_CC_value='/home/toai/Downloads/android-ndk-r9/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=/home/toai/Downloads/android-ndk-r9/platforms/android-5/arch-arm/'
ac_cv_env_CFLAGS_set=set
ac_cv_env_CFLAGS_value='-marm -march=armv5'
ac_cv_env_CPPFLAGS_set=set
ac_cv_env_CPPFLAGS_value='-marm -march=armv5'
ac_cv_env_CPP_set=
ac_cv_env_CPP_value=
ac_cv_env_LDFLAGS_set=set
ac_cv_env_LDFLAGS_value='-Wl,-rpath-link=/home/toai/Downloads/android-ndk-r9/platforms/android-5/arch-arm//usr/lib -L/home/toai/Downloads/android-ndk-r9/platforms/android-5/arch-arm//usr/lib -nostdlib -lc -lm -ldl -llog'
ac_cv_env_LIBS_set=
ac_cv_env_LIBS_value=
ac_cv_env_build_alias_set=
ac_cv_env_build_alias_value=
ac_cv_env_host_alias_set=set
ac_cv_env_host_alias_value=arm-linux
ac_cv_env_target_alias_set=
ac_cv_env_target_alias_value=
ac_cv_host=arm-unknown-linux-gnu
ac_cv_path_install='/usr/bin/install -c'
ac_cv_path_mkdir=/bin/mkdir
ac_cv_prog_AWK=mawk
ac_cv_prog_CC='/home/toai/Downloads/android-ndk-r9/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=/home/toai/Downloads/android-ndk-r9/platforms/android-5/arch-arm/'
ac_cv_prog_STRIP=/home/toai/Downloads/android-ndk-r9/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-strip
ac_cv_prog_make_make_set=yes
am_cv_make_support_nested_variables=yes
am_cv_prog_tar_ustar=gnutar

## ----------------- ##
## Output variables. ##
## ----------------- ##

ACLOCAL='${SHELL} /home/toai/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc/missing --run aclocal-1.11'
AMDEPBACKSLASH=''
AMDEP_FALSE=''
AMDEP_TRUE='#'
AMTAR='$${TAR-tar}'
AM_BACKSLASH='\'
AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)'
AM_DEFAULT_VERBOSITY='0'
AM_V='$(V)'
AR='/home/toai/Downloads/android-ndk-r9/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-ar'
ARMV5E_FALSE=''
ARMV5E_TRUE='#'
ARMV7NEON_FALSE=''
ARMV7NEON_TRUE='#'
AUTOCONF='${SHELL} /home/toai/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc/missing --run autoconf'
AUTOHEADER='${SHELL} /home/toai/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc/missing --run autoheader'
AUTOMAKE='${SHELL} /home/toai/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc/missing --run automake-1.11'
AWK='mawk'
CC='/home/toai/Downloads/android-ndk-r9/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc --sysroot=/home/toai/Downloads/android-ndk-r9/platforms/android-5/arch-arm/'
CCAS=''
CCASDEPMODE=''
CCASFLAGS=''
CCDEPMODE=''
CFLAGS='-marm -march=armv5'
CPP=''
CPPFLAGS='-marm -march=armv5'
CYGPATH_W='echo'
DEFS=''
DEPDIR='.deps'
DLLTOOL=''
DSYMUTIL=''
DUMPBIN=''
ECHO_C=''
ECHO_N='-n'
ECHO_T=''
EGREP=''
EXAMPLE_FALSE=''
EXAMPLE_TRUE='#'
EXEEXT=''
FGREP=''
GREP=''
INSTALL_DATA='${INSTALL} -m 644'
INSTALL_PROGRAM='${INSTALL}'
INSTALL_SCRIPT='${INSTALL}'
INSTALL_STRIP_PROGRAM='$(install_sh) -c -s'
LD=''
LDFLAGS='-Wl,-rpath-link=/home/toai/Downloads/android-ndk-r9/platforms/android-5/arch-arm//usr/lib -L/home/toai/Downloads/android-ndk-r9/platforms/android-5/arch-arm//usr/lib -nostdlib -lc -lm -ldl -llog'
LIBOBJS=''
LIBS=''
LIBTOOL=''
LIBTOOL_DEPS=''
LIPO=''
LN_S=''
LTLIBOBJS=''
MAINT='#'
MAINTAINER_MODE_FALSE=''
MAINTAINER_MODE_TRUE='#'
MAKEINFO='${SHELL} /home/toai/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc/missing --run makeinfo'
MANIFEST_TOOL=''
MKDIR_P='/bin/mkdir -p'
NM='/home/toai/Downloads/android-ndk-r9/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-nm'
NMEDIT=''
OBJDUMP=''
OBJEXT=''
OTOOL64=''
OTOOL=''
PACKAGE='vo-amrwbenc'
PACKAGE_BUGREPORT='http://sourceforge.net/projects/opencore-amr/'
PACKAGE_NAME='vo-amrwbenc'
PACKAGE_STRING='vo-amrwbenc 0.1.2'
PACKAGE_TARNAME='vo-amrwbenc'
PACKAGE_URL=''
PACKAGE_VERSION='0.1.2'
PATH_SEPARATOR=':'
RANLIB='/home/toai/Downloads/android-ndk-r9/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-ranlib'
SED=''
SET_MAKE=''
SHELL='/bin/bash'
STRIP='/home/toai/Downloads/android-ndk-r9/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-strip'
VERSION='0.1.2'
VO_AMRWBENC_VERSION=''
ac_ct_AR=''
ac_ct_CC=''
ac_ct_DUMPBIN=''
am__EXEEXT_FALSE=''
am__EXEEXT_TRUE=''
am__fastdepCCAS_FALSE=''
am__fastdepCCAS_TRUE=''
am__fastdepCC_FALSE=''
am__fastdepCC_TRUE=''
am__include='include'
am__isrc=''
am__leading_dot='.'
am__nodep=''
am__quote=''
am__tar='tar --format=ustar -chf - "$$tardir"'
am__untar='tar -xf -'
bindir='${exec_prefix}/bin'
build='x86_64-unknown-linux-gnu'
build_alias=''
build_cpu='x86_64'
build_os='linux-gnu'
build_vendor='unknown'
datadir='${datarootdir}'
datarootdir='${prefix}/share'
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
dvidir='${docdir}'
exec_prefix='NONE'
host='arm-unknown-linux-gnu'
host_alias='arm-linux'
host_cpu='arm'
host_os='linux-gnu'
host_vendor='unknown'
htmldir='${docdir}'
includedir='${prefix}/include'
infodir='${datarootdir}/info'
install_sh='${SHELL} /home/toai/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc/install-sh'
libdir='${exec_prefix}/lib'
libexecdir='${exec_prefix}/libexec'
localedir='${datarootdir}/locale'
localstatedir='${prefix}/var'
mandir='${datarootdir}/man'
mkdir_p='/bin/mkdir -p'
oldincludedir='/usr/include'
pdfdir='${docdir}'
prefix='/home/toai/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc/../ffmpeg-build/armeabi'
program_transform_name='s,x,x,'
psdir='${docdir}'
sbindir='${exec_prefix}/sbin'
sharedstatedir='${prefix}/com'
sysconfdir='${prefix}/etc'
target_alias=''

## ----------- ##
## confdefs.h. ##
## ----------- ##

/* confdefs.h */
#define PACKAGE_NAME "vo-amrwbenc"
#define PACKAGE_TARNAME "vo-amrwbenc"
#define PACKAGE_VERSION "0.1.2"
#define PACKAGE_STRING "vo-amrwbenc 0.1.2"
#define PACKAGE_BUGREPORT "http://sourceforge.net/projects/opencore-amr/"
#define PACKAGE_URL ""
#define PACKAGE "vo-amrwbenc"
#define VERSION "0.1.2"

configure: exit 77

person Toai Luong    schedule 21.02.2014    source источник
comment
Можете ли вы также опубликовать свой config.log?   -  person GhostDerfel    schedule 21.02.2014
comment
создан libffmpeg.so файл, посмотрите FFmpegLibrary/jni/ffmpeg-build/{armeabi,armeabi-v7a,x86}/libffmpeg.so   -  person Jayesh Bhoi    schedule 21.02.2014
comment
Я отправил config.log, пожалуйста, помогите мне исправить это   -  person Toai Luong    schedule 21.02.2014


Ответы (2)


Вы должны заглянуть в файл config.log. Найдите строки, содержащие error:. Эти строки показывают, где процесс настройки обнаружил проблемы или отсутствующие компоненты.

Затем посмотрите выше ошибки для командной строки, например

gcc -D_ISOC99_SOURCE -std=c99 -E -o /tmp/ffconf.blSwtBlI.o /tmp/ffconf.b17GLMRQ.c

Вы также можете заглянуть в конец config.log и посмотреть, сможете ли вы найти там проблему.

В вашем случае вполне может быть, что в самом компиляторе отсутствует какая-то важная библиотека или конфигурация. Вы можете исследовать это дальше, создав простую программу hello world.

#include <stdio.h>

int main() {
    printf("Hello, world!\n");
    return 0;
}

и скомпилируйте это в командной строке с помощью

/home/toai/Downloads/android-ndk-r9/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc hello.c

и посмотрите, что выдает компилятор.

Обновление:

В вашем config.log у вас есть эти строки

configure:3393: ошибка: в `/home/toai/AndroidFFmpeg/FFmpegLibrary/jni/vo-amrwbenc':
configure:3395: ошибка: компилятор C не может создавать исполняемые файлы

Теперь, когда вы поднимаетесь на несколько строк вверх, вы видите

configure:3324: проверка работы компилятора C
configure:3346: /home/toai/Downloads/android-ndk-r9/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/ arm-linux-androideabi-gcc --sysroot=/home/toai/Загрузки/android-ndk-r9/платформы/android-5/arch-arm/ -marm -march=armv5 -marm -march=armv5 -Wl,- rpath-link=/home/toai/Загрузки/android-ndk-r9/платформы/android-5/arch-arm//usr/lib -L/home/toai/Загрузки/android-ndk-r9/платформы/android- 5/arch-arm//usr/lib -nostdlib -lc -lm -ldl -llog conftest.c >&5
./configure: строка 3348: /home/toai/Downloads/android-ndk-r9 /toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-gcc: нет такого файла или каталога
configure:3350: $? = 127
настроить:3388: результат: нет

Это означает, что он не может найти или выполнить компилятор. Возможно, вы не установили его должным образом или он находится где-то еще. В моей системе я могу запустить gcc из командной строки.

/path/to/android-ndk-r9b/toolchains/arm-linux-androideabi-4.6/предварительно собранный/linux-x86_64/bin/arm-linux-androideabi-gcc -v

и я получаю

Использование встроенных спецификаций.
COLLECT_GCC=/usr/local/opt/android-ndk-r9b/toolchains/arm-linux-androideabi-4.6/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc< br> ...
Модель потока: posix
gcc версии 4.6 20120106 (предварительная версия) (GCC)

person Olaf Dietsche    schedule 21.02.2014
comment
Точно мой случай, плюс! Но я не могу понять, почему configure пытается использовать набор инструментов arm-linux-androideabi-4.4.3, которого нет в моем NDK r9d. Вместо него есть тулчейны 4.6, 4.9 и другие, но нет 4.4.3... - person Mixaz; 28.11.2014
comment
сам себе отвечаю: пути к тулчейнам указаны в файле AndroidFFmpeg/FFmpegLibrary/jni/build_android.sh - person Mixaz; 28.11.2014

У меня была такая же проблема при компиляции для x86 с android-ndk-r8b. Оказывается, имена файлов в android-ndk-{version}/toolchains/x86-4.4.3/prebuilt/linux-x86/bin не совпадают в разных версиях NDK. Порядок «андроид» и «линукс», кажется, меняется.

Из-за этого скрипт configure не может найти компилятор. Он указывает на i686-android-linux-gcc, тогда как папка содержит только файл с именем i686-linux-android-gcc.

Вы можете исправить проблему, сделав симлинки в папке android-ndk-{version}/toolchains/x86-4.4.3/prebuilt/linux-x86/bin с «правильными» именами.

редактировать: то же самое касается имени папки android-ndk-{version}/toolchains/x86-4.4.3/prebuilt/linux-x86/lib/gcc/i686-linux-android

person luukSchip    schedule 03.02.2015
comment
Как сделать симлинки в ubuntu 12+ - person Rakki s; 20.03.2015