zoukankan      html  css  js  c++  java
  • Ubuntu+NDK编译openssl(为了Android上使用libcurl且支持HTTPS协议)

    为了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

    http://www.cnblogs.com/guoxiaoqian/p/4199576.html

  • 相关阅读:
    支付宝移动支付开发详细教程服务端采用.net mvc webapi(C#)
    微信移动支付V3开发详细教程服务端采用.net mvc webapi(C#)
    CSS border-radius 圆角
    CSS hack大全&详解(什么是CSS hack)
    一小时搞定DIV+CSS布局-固定页面开度布局
    ASP.NET MVC3开发
    .net mvc页面UI之Jquery博客日历控件
    ASP.NET MVC3开发-数据库篇之CodeFisrt开发(一)
    ASP.NET MVC页面UI之联动下拉选择控件(省、市、县联动选择)
    Jquery文本框值改变事件(支持火狐、ie)
  • 原文地址:https://www.cnblogs.com/findumars/p/7492573.html
Copyright © 2011-2022 走看看