kai*_*ren 8 android cygwin openssl android-ndk
我正在尝试通过cygwin在Android上编译openssl-1.1.0,请遵循以下指南:
但它失败了,这是错误:
crypto/aes/aes_ecb.c:10:20: fatal error: assert.h: No such file or directory
#include <assert.h>
Run Code Online (Sandbox Code Playgroud)
我使用的是Android-ndk-r12b,Win10,cygwin 64位.
这是我在编译之前的预配置:
export NDK=~/android-ndk-r12b
$NDK/build/tools/make-standalone-toolchain.sh --platform=android-21 --toolchain=arm-linux-androideabi-4.9 --install-dir=`pwd`/android-toolchain-arm
export TOOLCHAIN_PATH=`pwd`/android-toolchain-arm/bin
export TOOL=arm-linux-androideabi
export NDK_TOOLCHAIN_BASENAME=${TOOLCHAIN_PATH}/${TOOL}
export CC=$NDK_TOOLCHAIN_BASENAME-gcc
export CXX=$NDK_TOOLCHAIN_BASENAME-g++
export LINK=${CXX}
export LD=$NDK_TOOLCHAIN_BASENAME-ld
export AR=$NDK_TOOLCHAIN_BASENAME-ar
export RANLIB=$NDK_TOOLCHAIN_BASENAME-ranlib
export STRIP=$NDK_TOOLCHAIN_BASENAME-strip
export ARCH_FLAGS="-mthumb"
export ARCH_LINK=
export CPPFLAGS=" ${ARCH_FLAGS} -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 "
export CXXFLAGS=" ${ARCH_FLAGS} -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 -frtti -fexceptions "
export CFLAGS=" ${ARCH_FLAGS} -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-strict-aliasing -finline-limit=64 "
export LDFLAGS=" ${ARCH_LINK} "
./Configure android
PATH=$TOOLCHAIN_PATH:$PATH make
Run Code Online (Sandbox Code Playgroud)
请帮我告诉我哪里错了
编辑:
按照jww的建议,我尝试使用https://wiki.openssl.org/index.php/Android
我将setenv-android.sh中的一些配置更改为:
-_ANDROID_NDK="android-ndk-r12b"
-_ANDROID_EABI="arm-linux-androideabi-4.9"
-_ANDROID_API="android-21"
Run Code Online (Sandbox Code Playgroud)
为了生成有效的工具链,我在"linux-x86_64""linux-x86""darwin-x86_64""darwin-x86"中为主机添加"windows-x86_64"现在它是:
for host in "linux-x86_64" "linux-x86" "darwin-x86_64" "darwin-x86" "windows-x86_64"
do
....
done
Run Code Online (Sandbox Code Playgroud)
+构建openssl-1.1.0:
错误:
$ perl -pi -e 's/install: all install_docs install_sw/install: install_docs install_sw/g' Makefile.org
Can't open Makefile.org: No such file or directory.
Run Code Online (Sandbox Code Playgroud)
编辑2:
我按照jww的wiki更新,它运行顺利,直到这个命令:
arm-linux-androideabi-gcc -I /usr/local/ssl/include my_prog.c -o my_prog.exe -L /usr/local/ssl/lib -lssl -lcrypto
Run Code Online (Sandbox Code Playgroud)
如果我使用$ANDROID_TOOCHAIN/arm-linux-androideabi-gcc -I /usr/local/ssl/include my_prog.c -o my_prog.exe -L /usr/local/ssl/lib -lssl -lcrypto,它不明白-I和my_prog.c
我想为Android构建openssl-1.1.0,但我不知道如何解决它.请帮忙
我试图为 Android 构建 OpenSSL 1.1.0g
android NDK android-ndk-r16b, centOS 6.9 64 bit OS.
Run Code Online (Sandbox Code Playgroud)
根据https://wiki.openssl.org/index.php/Android
并遇到了同样的问题
crypto/aes/aes_ecb.c:10:20: fatal error: assert.h: No such file or directory
#include <assert.h>
Run Code Online (Sandbox Code Playgroud)
经过搜索,我发现Updated NDKandroid-ndk-r16b已更新sysroot为android-ndk-r16b/sysroot包含包含目录但没有库。
所以包含路径和库路径都改变了
但setenv-android.sh设置sysroot为
export ANDROID_SYSROOT="$ANDROID_NDK_ROOT/platforms/$_ANDROID_API/$_ANDROID_ARCH"
Run Code Online (Sandbox Code Playgroud)
但这对于 android-ndk-r13b 有效
我可以使用 android-ndk-r13b 成功构建 OpenSSL。
| 归档时间: |
|
| 查看次数: |
5005 次 |
| 最近记录: |