zoukankan      html  css  js  c++  java
  • Ubuntu+NDK编译openssl

    为了Android上使用libcurl且支持HTTPS协议,需要依赖openssl,因此先来了解一下如何编译OpenSSL
    1.编译ARM下的共享库(默认的)
    我使用的是guardianproject的openssl,它已经提供好了android的ndk makefile。
    git clone https://github.com/guardianproject/openssl-android.git
    然后直接cd到该目录,$NDK/ndk-build就行。
    注意默认的使用NDKr5b,如果没有该版本,请在jni/Application.mk中修改工具链版本
    这样可编译出ARM下的共享库(libcrypto.so和libssl.so),这两个库已经可以配合libcurl支持HTTPS了。
    2.编译ARM下的静态库
    先修改crypto/Android.mk:
    # target
    include $(CLEAR_VARS)
    include $(LOCAL_PATH)/../android-config.mk
    LOCAL_SRC_FILES += $(local_src_files)
    LOCAL_CFLAGS += $(local_c_flags)
    LOCAL_C_INCLUDES += $(local_c_includes)
    LOCAL_LDLIBS += -lz
    ifeq ($(TARGET_ARCH),arm)
    LOCAL_SRC_FILES += $(arm_src_files)
    LOCAL_CFLAGS += $(arm_cflags)
    else
    LOCAL_SRC_FILES += $(non_arm_src_files)
    endif
    ifeq ($(TARGET_SIMULATOR),true)
    # Make valgrind happy.
    LOCAL_CFLAGS += -DPURIFY
    LOCAL_LDLIBS += -ldl
    endif
    LOCAL_MODULE_TAGS := optional
    LOCAL_MODULE:= libcrypto
    include $(BUILD_STATIC_LIBRARY)
    就是把最后的BUILD_SHARED_LIBRARY改成BUILD_STATIC_LIBRARY;后面其他MODULE都删掉.

    再修改ssl/Android.mk:
    include $(CLEAR_VARS)
    include $(LOCAL_PATH)/../android-config.mk
    LOCAL_SRC_FILES += $(local_src_files)
    LOCAL_C_INCLUDES += $(local_c_includes)
    LOCAL_STATIC_LIBRARIES += libcrypto
    LOCAL_MODULE_TAGS := optional
    LOCAL_MODULE:= libssl
    include $(BUILD_STATIC_LIBRARY)
    就是把SHARED都缓存STATIC,后面的其他MODULE也都删掉

    3.编译X86版本的静态库
    修改jni/Application.mk:
    NDK_TOOLCHAIN_VERSION=4.6
    APP_PROJECT_PATH := $(shell pwd)
    APP_ABI := x86
    TARGET_ARCH := x86
    APP_BUILD_SCRIPT := $(APP_PROJECT_PATH)/Android.mk
    就是加上ABI和ARCH限制,然后该一下工具连VERSION,因为默认NDKr5b好像不支持x86,所以要换一个高版本的NDK

  • 相关阅读:
    排序算法(一)冒泡法
    java是传值还是传引用
    赫夫曼树与赫夫曼编码
    数据结构的相关概念
    字符集和字符编码的区别
    redis为什么选择单线程工作模型
    GET和POST请求的核心区别
    MySQL数据类型及后面小括号的意义
    java中的数据类型
    Jedis无法连接centOS7上的redis
  • 原文地址:https://www.cnblogs.com/guoxiaoqian/p/4199576.html
Copyright © 2011-2022 走看看