Ubuntu+NDK編譯openssl(為了Android上使用libcurl且支援HTTPS協議)

來源:互聯網
上載者:User

標籤:www.   bsp   tool   nal   tar   happy   共用庫   sim   aries   

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

Ubuntu+NDK編譯openssl(為了Android上使用libcurl且支援HTTPS協議)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.