您的位置:首页 > 移动开发 > Android开发

Android平台JNI程序编译之openssl

2015-01-27 10:59 316 查看
一. 安装ndk
1. 下载最新ndk
2. 解压
3. 配置环境变量
a. vim ~/.baserc
b. NDK=~/android-ndk
c. export NDK
4. 使环境变量生效
a. source ~/.baserc

二. 编译openssl
1. 下载开源的openssl-android
(1). 网址
a. https://github.com/guardianproject/openssl-android (2). 版本
a. 现在(20140411)的版本为1.0.0a
2. 编译
(1). 此开源的代码可直接编译
a. $NDK/ndk-build
(2). 动态库
a. 直接编译,编译完成后将在libs下生成libcrypto和libssl的动态库
(3). 静态库
a. 修改include $(BUILD_SHARED_LIBRARY)为include $(BUILD_STATIC_LIBRARY)
b. $NDK/ndk-build
3. 其他参考(中国网友)
(1). 网址
a. http://download.csdn.net/source/3408214 (2). 修改(此网友改变的有点错误)
a. myApp下的Androdi.mk
include $(CLEAR_VARS)该句必须加在LOCAL_PATH := $(call my-dir)的下一句,不能在local_c_includes :=之后,否则编译不出来
b. 必须添加库连接LOCAL_LDLIBS :=  -L$(SYSROOT)/usr/lib -llog -lz -ldl否则链接不过
c. openssl库的连接顺序为LOCAL_STATIC_LIBRARIES := libcrypto-static libssl-static,不可乱

三. 备注
1. 如出现未定义出错,可能是由于没有连接其他库的原因,比如LOCAL_LDLIBS := -lz –ldl
2. 如出现链接出错,也有可能是openssl的两个库链接顺序LOCAL_SHARED_LIBRARIES := libssl-static libcrypto-static
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  ndk openssl