【发布时间】:2012-08-09 09:57:30
【问题描述】:
我正在尝试为 Android 的 OpenSSL1.0.1c 的 (.so) 文件生成共享库。我发现他们在 android 脚本中添加了三个用于为 Android 编译的选项。
./Configure android-armv7 (or)
./Configure android-x86 (or)
./Configure android
一旦我为操作系统配置然后尝试编译,它就会抛出错误。 目前我正在使用 x86 windows7 并安装了 Cygwin、Android sdk R20、Android NDK r8
sh-4.1$ make
making all in crypto...
make[1]: Entering directory `/cygdrive/d/SourceCodes/OpenSSL/openssl-1.0.1c/crypto'
gcc -I. -I.. -I../include -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -march=armv7-a -mandroid -I/include -B/lib -O3 -fomit-frame-pointer -Wall -DOPENSSL_BN_ASM_MONT -DOP
ENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM -DGHASH_ASM -c -o cryptlib.o cryptlib.c
cc1: error: unrecognized command line option "-mandroid"
cryptlib.c:1:0: error: bad value (armv7-a) for -march= switch
<builtin>: recipe for target `cryptlib.o' failed
make[1]: *** [cryptlib.o] Error 1
make[1]: Leaving directory `/cygdrive/d/SourceCodes/OpenSSL/openssl-1.0.1c/crypto'
Makefile:278: recipe for target `build_crypto' failed
make: *** [build_crypto] Error 1
sh-4.1$
如果有人遇到类似问题并得到解决方案,请告诉我。
【问题讨论】:
-
您可能应该使用项目提供的说明。另请参阅 OpenSSL wiki 中的 OpenSSL and Android。原来是下面的回答,但被一位版主删掉了。
-
@jww 查看 openssl wiki 上的说明没有多大意义。他们没有足够的信息来实际为 android 构建。 (您会注意到诸如“ARMv7 和 x86 上的 Android 交叉编译环境”之类的内容——太好了,谢谢,Android 支持的其他架构呢?)
-
OpenSSL wiki 在 NDK 端和 OpenSSL 端都已过时。
标签: android android-ndk openssl