如何在Android / Linux上构建OpenSSL?

时间:2011-04-20 10:23:44

标签: android android-ndk g++ openssl

您好 我需要为Android NDK r5b构建OpenSSL库,今天它将是我用户战斗的第二天。这是我做过的简短列表

  1. 已下载:https://github.com/fries/android-external-openssl/
  2. 正如我在StackOverflow上找到的那样修复.S< - > .s问题
  3. 加密建设...直到我收到此消息:

  4. /预建/窗/ bin中/臂-Linux的androideabi- SharedLibrary:libcrypto.so arm-linux-androideabi -g ++。exe:CreateProcess:没有这样的文件或目录 make: * [/cygdrive/c/AndroidDev/AndroidOpenSSL/obj/local/armeabi/libcrypto.so]  错误1 *

    我上次使用make时已经10年了,我确信这是g ++路径的问题。为工具链添加了一些调试,得到了:

    TOOLCHAIN_NAME:arm-linux-androideabi-4.4.3 TOOLCHAIN_PREFIX:/cygdrive/c/Android_NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin/arm-linux-androideabi -

    对我来说都很好,因为/cygdrive/c/Android_NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin/确实存在,而arm-linux-androideabi-g ++。exe是对的那里:(

    有没有人遇到同样的问题?我真的不知道在哪里看任何未来:( 将会感激帮助

3 个答案:

答案 0 :(得分:2)

看起来只有我有这样的问题。这是我发现的解决方案,可能有人会弄清楚为什么会发生这种情况。 保存命令行以分隔名为 bild_data 的文件(从ndk-build输出),然后从g ++调用中删除,这样我的构建文件只有文件列表和所需的标志。然后我刚从cygwin执行 arm-linux-androideabi-g ++ @build_data 之后,我得到了我的'珍贵'libcrypto.so, ndk-build 再次执行了libcrypto.so alerdy从命令行构建,构建了openssl库。 对我来说,看起来超过31kb的命令行不适合cygwin缓冲区:(

答案 1 :(得分:2)

一种解决方案也是缩短openssl构建路径,例如。从c:\ code \ openssl-android到c:\ ssl

答案 2 :(得分:1)

我在Windows(cygwin)上构建同样的问题,缩短项目目录的路径(请参阅芒果的答案)对我有用。