ubuntu make show полная команда

Я пытаюсь перекрестно скомпилировать libmp3lame на Ubuntu, в какой-то момент он терпит неудачу, и журнал ошибок усекается, поэтому я не могу определить, что происходит.

последние строки вывода оболочки:

/bin/bash ../libtool  --tag=CC   --mode=link /home/rafa/Desktop/missao/ndk17/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc  -mfloat-abi=softfp -marm -march=armv7-a -Os -O3   -I/home/rafa/Desktop/m2/build_dir/include -I/home/rafa/Desktop/missao/ndk17/sysroot/usr/include -I/home/rafa/Desktop/missao/ndk17/sysroot/usr/include/arm-linux-androideabi/ -L/home/rafa/Desktop/m2/build_dir/lib -L/home/rafa/Desktop/missao/ndk17/platforms/android-27/arch-arm/usr/lib -L/home/rafa/Desktop/missao/ndk17/sysroot/usr/lib/arm-linux-androideabi -fPIE       -L/home/rafa/Desktop/m2/build_dir/lib -L/home/rafa/Desktop/missao/ndk17/platforms/android-27/arch-arm/usr/lib -L/home/rafa/Desktop/missao/ndk17/sysroot/usr/lib/arm-linux-androideabi -fPIE -pie   -static  -o lame lame_main.o main.o brhist.o console.o get_audio.o lametime.o parse.o timestatus.o ../libmp3lame/libmp3lame.la -lm 
libtool: link: /home/rafa/Desktop/missao/ndk17/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc -mfloat-abi=softfp -marm -march=armv7-a -Os -O3 -I/home/rafa/Desktop/m2/build_dir/include -I/home/rafa/Desktop/missao/ndk17/sysroot/usr/include -I/home/rafa/Desktop/missao/ndk17/sysroot/usr/include/arm-linux-androideabi/ -fPIE -fPIE -pie -o lame lame_main.o main.o brhist.o console.o get_audio.o lametime.o parse.o timestatus.o  -L/home/rafa/Desktop/m2/build_dir/lib -L/home/rafa/Desktop/missao/ndk17/platforms/android-27/arch-arm/usr/lib -L/home/rafa/Desktop/missao/ndk17/sysroot/usr/lib/arm-linux-androideabi ../libmp3lame/.libs/libmp3lame.a -lm
/home/rafa/Desktop/missao/ndk17/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: cannot open crtbegin_dynamic.o: No such file or directory
/home/rafa/Desktop/missao/ndk17/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: cannot open crtend_android.o: No such file or directory

at:

/home/rafa/Desktop/missao/ndk17/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld

как я могу заставить make показать полную команду вместо /../, чтобы помочь мне понять, что происходит

=================== ОБНОВЛЕНИЕ========================

Попытка прояснить ситуацию, это очень длинный скрипт для сборки ffmpeg для Android [он не работает при компиляции libmp3lame

Я попытаюсь вставить соответствующие поля:

export NDK=/home/rafa/Desktop/missao/ndk17

OS="linux-x86_64"
ARM_SYSROOT=$NDK/platforms/android-27/arch-arm
ARM_PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/$OS

CPU=armv7-a
ARCH=arm
OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=neon -marm -mtune=cortex-a8 -march=$CPU -Os -O3"
ADDITIONAL_CONFIGURE_FLAG="--enable-neon "
SYSROOT=$ARM_SYSROOT
HOST=arm-linux-androideabi
CROSS_PREFIX=$ARM_PREBUILT/bin/$HOST-
OPTIMIZE_CFLAGS="$OPTIMIZE_CFLAGS "
PREBUILT=$ARM_PREBUILT

TOOLCHAIN=$NDK/sysroot/usr/include/$HOST/
export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig"
export CPP="${CROSS_PREFIX}cpp"
export CXX="${CROSS_PREFIX}g++"
export CC="${CROSS_PREFIX}gcc"
export LD="${CROSS_PREFIX}ld"
export AR="${CROSS_PREFIX}ar"
export NM="${CROSS_PREFIX}nm"
export RANLIB="${CROSS_PREFIX}ranlib"
export LDFLAGS="-L$PREFIX/lib -L$SYSROOT/usr/lib -L$NDK/sysroot/usr/lib/$HOST -fPIE -pie "
export CFLAGS="$OPTIMIZE_CFLAGS -I$PREFIX/include -I$NDK/sysroot/usr/include -I$TOOLCHAIN -L$PREFIX/lib -L$SYSROOT/usr/lib -L$NDK/sysroot/usr/lib/$HOST -fPIE " 
export CXXFLAGS="$CFLAGS "
export CPPFLAGS="-I$PREFIX/include -I$NDK/sysroot/usr/include -I$TOOLCHAIN --sysroot=$SYSROOT "
export STRIP=${CROSS_PREFIX}strip
export PATH="$PATH:$PREFIX/bin:$NDK/build"

команда:

pushd lame
./configure \
    --prefix=$PREFIX \
    --host=$HOST \
    --enable-static \
    --disable-shared \
    --with-sysroot=/home/rafa/Desktop/missao/ndk17/platforms/android-27/arch-arm/usr/lib

make clean
make  
make install
popd

Файлы, которые он ищет, находятся под

/home/rafa/Desktop/missao/ndk17/platforms/android-27/arch-arm/usr/lib

но я установил этот каталог в sysroot, а также в LDFLAGS, и он все еще не может его найти


person Rafael Lima    schedule 02.06.2018    source источник
comment
/../ это полный вывод. Это означает один каталог выше в иерархии.   -  person Ignacio Vazquez-Abrams    schedule 02.06.2018
comment
Для cannot open crtbegin_dynamic.o (и друзей) вы можете попробовать добавить --sysroot. Он сообщает компилятору, где найти заголовки и библиотеки. Вероятно, вам следует показать, как вы настроили проект, чтобы люди могли увидеть полную командную строку. Обратите внимание, что Autotools по умолчанию игнорирует --with-sysroot (derp...), поэтому вам может понадобиться нечто большее, чем просто --with-sysroot или --sysroot.   -  person jww    schedule 02.06.2018
comment
@jww, я установил эту папку с правильным местом для поиска этих файлов, но, похоже, это игнорируется   -  person Rafael Lima    schedule 02.06.2018
comment
@Rafael. Что касается ARM_SYSROOT=$NDK/platforms/android-27/arch-arm, у Google есть более новая цепочка инструментов Android. Я думаю, вам действительно нужно два системных корня. Есть базовый и платформенный. Это очень необычно. Вещи также различаются в зависимости от того, является ли платформа MIPS/MIPS64 или нет. Я работаю над похожей ошибкой в ​​Crypto++ | Поддержка CLang для Android.   -  person jww    schedule 02.06.2018


Ответы (1)


после тестирования нескольких конфигураций я нашел одну, которая работала, и делюсь ею на случай, если кто-то столкнется с похожими проблемами.

       export NDK=/home/rafa/Desktop/missao/ndk17

       OS="linux-x86_64"
       ARM_SYSROOT=$NDK/platforms/android-27/arch-arm
       ARM_PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/$OS

       CPU=armv7-a
       ARCH=arm
       OPTIMIZE_CFLAGS="-mfloat-abi=softfp -mfpu=neon -marm -mtune=cortex-a8 -march=$CPU -Os -O3"
       ADDITIONAL_CONFIGURE_FLAG="--enable-neon "
       SYSROOT=$ARM_SYSROOT
       HOST=arm-linux-androideabi
       CROSS_PREFIX=$ARM_PREBUILT/bin/$HOST-
       OPTIMIZE_CFLAGS="$OPTIMIZE_CFLAGS "
       PREBUILT=$ARM_PREBUILT
       export PKG_CONFIG_PATH="$PREFIX/lib/pkgconfig"
       export CPP="${CROSS_PREFIX}cpp"
       export CXX="${CROSS_PREFIX}g++"
       export CC="${CROSS_PREFIX}gcc"
       export LD="${CROSS_PREFIX}ld"
       export AR="${CROSS_PREFIX}ar"
       export NM="${CROSS_PREFIX}nm"
       export RANLIB="${CROSS_PREFIX}ranlib"
       export LDFLAGS="-L$PREFIX/lib -L$SYSROOT/usr/lib -L$NDK/sysroot/usr/lib/$HOST -fPIE -pie --sysroot=$SYSROOT "
       export CFLAGS="$OPTIMIZE_CFLAGS -I$PREFIX/include -I$NDK/sysroot/usr/include -I$TOOLCHAIN -fPIE " 
       export CXXFLAGS="$CFLAGS "
       export CPPFLAGS="-I$PREFIX/include -I$NDK/sysroot/usr/include -I$TOOLCHAIN --sysroot=$SYSROOT "
       export STRIP=${CROSS_PREFIX}strip
       export PATH="$PATH:$PREFIX/bin:$NDK/build"

и работает с:

pushd lame
./configure \
    --prefix=$PREFIX \
    --host=$HOST \
    --enable-static \
    --disable-shared \
    --disable-frontend \ #I just need the libraries
    --with-sysroot=$SYSROOT
make clean
make  
make install
popd
person Rafael Lima    schedule 02.06.2018