android root x86 64,Openssl for Android x86_64 and mips64

博主在尝试为Android x86_64和MIPS64架构构建OpenSSL时遇到问题。x86版本构建成功,但x86_64和MIPS64版本在链接阶段失败,报错提示目标不兼容。错误信息显示x86_64-linux-android-ld和mips64-linux-android-ld无法读取编译后的对象文件。寻求解决构建这两个架构问题的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

I have built openssl for 5/7 of the android-21 (android-L) architectures: armeabi, armeabi-v7a, arm64, mips, x86. However I am unable to build it for x86_64 and mips64.

What I'm doing...

x86 - working

The following is my working script for x86, using a toolchain created by make-standalone-toolchain:

export ANDROID_NDK_ROOT=/Users/jacsteve/dev/android/ndk

export ANDROID_API=android-21

export ANDROID_ARCH=arch-x86

export ANDROID_EABI=i686-linux-android-4.9

export ANDROID_SYSROOT=$ANDROID_NDK_ROOT/platforms/$ANDROID_API/arch-x86

export ANDROID_TOOLCHAIN=/tmp/toolchain/x86

export ANDROID_DEV=$ANDROID_SYSROOT/usr

export SYSTEM=android

export ARCH=x86

export CROSS_COMPILE=i686-linux-android-

export CFLAGS="--sysroot=$ANDROID_SYSROOT"

export CPPFLAGS="--sysroot=$ANDROID_SYSROOT"

export CXXFLAGS="--sysroot=$ANDROID_SYSROOT"

./Configure android-x86 shared no-asm -no-ssl2 -no-ssl3 -no-comp -no-hw --cross-compile-prefix=$CROSS_COMPILE --openssldir=/tmp/ssl/x86

make depend

make

make install

This works fine, and leaves me with libssl.so and libcrypto.so in /tmp/ssl/x86

x86_64 - fails

However, x86_64 fails. Here's the script:

export ANDROID_NDK_ROOT=/Users/jacsteve/dev/android/ndk

export ANDROID_API=android-21

export ANDROID_ARCH=arch-x86_64

export ANDROID_EABI=x86_64-linux-android-4.9

export ANDROID_SYSROOT=$ANDROID_NDK_ROOT/platforms/$ANDROID_API/arch-x86_64

export ANDROID_TOOLCHAIN=/tmp/toolchain/x86_64

export ANDROID_DEV=$ANDROID_SYSROOT/usr

export SYSTEM=android

export ARCH=x86_64

export CROSS_COMPILE=x86_64-linux-android-

export CFLAGS="--sysroot=$ANDROID_SYSROOT"

export CPPFLAGS="--sysroot=$ANDROID_SYSROOT"

export CXXFLAGS="--sysroot=$ANDROID_SYSROOT"

./Configure android-x86 shared no-asm -m64 -no-ssl2 -no-ssl3 -no-comp -no-hw --cross-compile-prefix=$CROSS_COMPILE --openssldir=/tmp/ssl/x86_64

make depend

make

make install

The Errors...

x86_64

I get a load of error messages from the make call that look like this:

/private/tmp/toolchain/x86_64/bin/../lib/gcc/x86_64-linux-android/4.9/../../../../x86_64-linux-android/bin/ld:

error: libcrypto.a(cryptlib.o): incompatible target

/private/tmp/toolchain/x86_64/bin/../lib/gcc/x86_64-linux-android/4.9/../../../../x86_64-linux-android/bin/ld:

error: libcrypto.a(mem.o): incompatible target

...

collect2: error: ld returned 1 exit status

It looks to me like x86_64-linux-android-gcc is compiling everything fine, but when we get to the linking stage, x86_64-linux-android-ld can't read the compiled object files.

mips64

Using a similar setup for mips64 (with ./Configure android-mips ...) I get the following error, which looks to be a similar issue to do with mips64-linux-android-ld being unable to read object files:

/Users/jacsteve/dev/android/ndk/platforms/android-21/arch-mips64/usr/lib/libdl.so: error adding symbols: File in wrong format

collect2: error: ld returned 1 exit status

Does anyone know how to build the x86_64 and mips64 architectures successfully?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值