首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >交叉编译:添加符号时出错:文件格式错误

交叉编译:添加符号时出错:文件格式错误
EN

Stack Overflow用户
提问于 2016-11-23 19:59:20
回答 1查看 8.4K关注 0票数 0

我正在尝试交叉编译用于arm-v8的fdk-aac。

下面是我的构建脚本:

代码语言:javascript
复制
#!/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 install

makemake install没有用,因为./configure失败了,错误消息要求我检查config.log

代码语言:javascript
复制
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交叉编译库……

EN

回答 1

Stack Overflow用户

发布于 2019-03-29 17:41:08

我已经添加了这两个语句"SET(CMAKE_C_COMPILER "mips-linux-uclibc-gnu-gcc") SET(CMAKE_CXX_COMPILER "mips-linux-uclibc-gnu-g++")“和构建成功,可能会对您有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40763963

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档