我正在尝试交叉编译用于arm-v8的fdk-aac。
下面是我的构建脚本:
#!/bin/sh
NDK_HOME=/home/ubuntu/android-ndk-r12b
INSTALL_DIR=/home/ubuntu/compiled
SYSROOT=$NDK_HOME/platforms/android-16/arch-arm/
TOOLCHAIN=$NDK_HOME/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64
CROSS_PREFIX=$TOOLCHAIN/bin/aarch64-linux-android-
CC={$CROSS_PREFIX}gcc
CXX={$CROSS_PREFIX}g++
CPP={$CROSS_PREFIX}cpp
CXXCPP={$CROSS_PREFIX}cpp
./configure \
--prefix=$INSTALL_DIR \
--with-sysroot=$SYSROOT \
--host=aarch64 \
--enable-shared \
--with-pic=no \
CC="${CROSS_PREFIX}gcc --sysroot=$SYSROOT" \
CXX="${CROSS_PREFIX}g++ --sysroot=$SYSROOT" \
RANLIB="${CROSS_PREFIX}ranlib" \
AR="${CROSS_PREFIX}ar" \
STRIP="${CROSS_PREFIX}strip" \
NM="${CROSS_PREFIX}nm" \
LD="${CROSS_PREFIX}ld --sysroot=$SYSROOT" \
CFLAGS="-O2 $OPTIMIZE_CFLAGS --sysroot=$SYSROOT" \
CXXFLAGS="-O2 $OPTIMIZE_CFLAGS --sysroot=$SYSROOT"
#make
#make installmake和make install没有用,因为./configure失败了,错误消息要求我检查config.log
configure:3243: checking whether the C compiler works
configure:3265: /home/ubuntu/android-ndk-r12b/toolchains/aarch64-linux-android-4.9/prebuilt/linux-x86_64/bin/aarch64-linux-android-gcc --sysroot=/home/ubuntu/android-ndk-r12b/platforms/android-16/arch-arm/ -O2 --sysroot=/home/ubuntu/android-ndk-r12b/platforms/android-16/arch-arm/ conftest.c >&5
/home/ubuntu/android-ndk-r12b/platforms/android-16/arch-arm/usr/lib/crtbegin_dynamic.o: error adding symbols: File in wrong format
collect2: error: ld returned 1 exit status
configure:3269: $? = 1
configure:3307: result: no
configure: failed program was:
| /* confdefs.h */
| #define PACKAGE_NAME "fdk-aac"
| #define PACKAGE_TARNAME "fdk-aac"
| #define PACKAGE_VERSION "0.1.4"
| #define PACKAGE_STRING "fdk-aac 0.1.4"
| #define PACKAGE_BUGREPORT "http://sourceforge.net/projects/opencore-amr/"
| #define PACKAGE_URL ""
| #define PACKAGE "fdk-aac"
| #define VERSION "0.1.4"
| /* end confdefs.h. */
|
| int
| main ()
| {
|
| ;
| return 0;
| }
configure:3312: error: in `/home/ubuntu/fdk-aac-0.1.4':
configure:3314: error: C compiler cannot create executables我不知道构建脚本的哪个配置是错误的。这是我第一次为ARM64交叉编译库……
发布于 2019-03-29 17:41:08
我已经添加了这两个语句"SET(CMAKE_C_COMPILER "mips-linux-uclibc-gnu-gcc") SET(CMAKE_CXX_COMPILER "mips-linux-uclibc-gnu-g++")“和构建成功,可能会对您有所帮助。
https://stackoverflow.com/questions/40763963
复制相似问题